j2ee项目实训struts框架技术——第3章bbs论坛项目持久层设计和实现第3部分内容摘要:

其他的成员方法的实现代码在此省略 } 执行该测试用例 1)启动测试用例类 TestUserManageDAOJDBCImple 在 Eclipse 的 主 菜单条中点击【 Run】下拉工具,然后再 选择其中的【运行方式】菜单项内的【 JUnit 测试】菜单项。 具体的实现要求请参考下面的图 中所示的菜单操作要求。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 9/19 页 图 启动测试用例类 TestUserManageDAOJDBCImple 2)将产生出下面的图 中所示的测试结果 图 执行 TestUserManageDAOJDBCImple 测试用例类的测试结果 从上面的图 所示的测试结果中,观察到对 TestUserManageDAOJDBCImple 测试用例类执行过程是正确的。 反推断出被测试类 UserManageDAOJDBCImple 中的各个被测试的方法应该是正常的。 采用测试套件来集成各个测试用例 由于本项目中存在有多个不同的 DAO 组件类,为了提高对这些不同的 DAO 组件的测试效率,可以应用 JUnit 中所提供的测试套件技术。 1)在测试项目中添加对 DAO 的测试套件 右击测试项目,在弹出的菜单中选择【 JUnit 测试 套件 】菜单项,将弹出“新建 JUnit测试 套件 ”的对话框,请参考下面的图 所示。 在 图 所示 的对话框中输入包名称杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 10/19 页 为 后, Eclipse 将自动地 显示出所设计出的针对各个 DAO 组件的 测试 用例类名称。 然后只需要选中这些 测试 用例类名或者在 图 所示 的对话框中点击 【 全部选中 】 按钮。 2)产生出测试套件的程序类代码 在 图 所示 的对话框中点击 【 下一步 】 按钮后, Eclipse 将自动地产生出下面 【例313】 所示的测试套件的程序类代码。 其中的黑体部分的代码是实现将各个测试用例类添加到测试套件中。 【例 313】 产生出的测试套件程序类代码示例 package。 import。 import。 public class AllTests { public static Test suite() { TestSuite suite = new TestSuite(Test for )。 ()。 ()。 ()。 su ()。 ()。 ()。 return suite。 } } 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 11/19 页 图 在测试项目中添加对 DAO 的测试套件 3)以套件的方式执行各个测试用例 在 Eclipse 中执行测试套件与执行普通的测试用例完全相同,除了可以采用 图 中所示的菜单操作 方式以外,也可以右击测试套件文件名称, 然后 在弹出的快捷菜单中 选择其中的【运行方式】菜单项内的【 JUnit 测试】菜单项。 具体的实现要求请参考下面的图 中所示的菜单操作要求。 图 以套件的方式执行各个测试用例 4)将产生出下面的图 中所示的测试结 果 从 下 面的图 所示的测试结果中, 可以 观察到 测试套件中的各个测试用例的执行结果是正确的,从而可以一次性地 反推断出 各个 被测试类中的各个被测试的方法应该是正常杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 12/19 页 的。 图 以套件的方式执行各个测试用例的结果 利用动态工厂模式重构项目持久层功能实现 所谓的系统 重构( Refactoring)就是在不改变 当前 软件现有功能的基础上,通过调整程序代码 中的具体结构和实现方式而达到 改善软件的质量、性能 等目的 ,使程序的设计 和编程实现 更趋合理,提高软件的扩展性和维护性。 由于在本项目的 持久层 功能实现时存在数据访问组 件和数据连接组件、而数据连接组件又与具体的物理数据库系统紧密关联,为了隔离这样的关系,在对象的创建方面应用 GOF设计模式中的工厂模式 来 重构 系统中 持久层 各个 功能 组件的具体 实现。 工厂模式 及可配置化 工厂 GOF 设计模式中的工厂模式 应用工厂模式可以达到能够实现应用系统中的数据层和业务逻辑层的分离的目标,因为在业务层中可以不需要关心数据层的对象的具体创建的实现细节。 也就是达到分离对象的创建者和对象的使用者之间的职责,从而使得在系统架构设计中的应用多层架构和分层等方面的概念和 技术 要求能够得以真正 地 实现。 因为 工厂模式主要是为创建对象提供一种统一的接口,并且封装创建对象的具体实现的细节过程,使得对象的使用者在调用一个对象时,根本无需关心这个对象实例是如何产生的。 也即要达到将创建对象实例的职责与使用该对象实例的职责相互分开的目的。 应用 工厂模式时将会有如下三个主要的缺点 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 13/19 页 1)除非重新编译,否则无法对产品的实现类进行替换 必须重新编译工厂类使得原本可以达成的易用性 将 大大 地被 降低。 在 早期的软件开发实践中 ,开发者 一般是 通过引入可配置化工厂类的 方式 ,为这种基于接口的设计提供足够的支持。 这解决了 对象 实例化的问题,但是它为应用系统的开发带来了 一定的 额外负担 ;同时,它也没有真正帮助开发者解决工厂模式 所存在的 下面的两个问题。 2)无法透明 地 为不同组件提供多个实现 这是 开发者 在应用工厂模式时一个比较 棘手 的 事情 ,因为工厂类要求每个组件都必须遵从工厂类中定义的方法。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。