追求代码质量: 可重复的系统测试
2009-11-19 00:00:00 来源:WEB开发网加入了 DbUnit,测试用例真的是可重复的了。在 handleSetUpOperation() 方法中,每当运行一个测试用例时,DbUnit 对数据执行一个 CLEAN_INSERT。此操作本质上将一个数据库的数据清空并插入一个新的数据集,从而删除任何之前创建的小部件。
再一次探讨什么是 DbUnit?
DbUnit 是一个 JUnit 扩展,用于在运行测试时将数据库放入一个已知状态中。开发人员使用 XML 种子文件将特定数据插入到测试用例所依赖的数据库中。因而,DbUnit 便利了依赖于一个或多个数据库的测试用例的可重复性。
但那并不意味着已经结束了对测试用例可重复性这一话题的探讨。事实上,一切才刚刚开始。
重复系统测试
我喜欢将 清单 1 和 清单 2 中定义的测试用例称为系统测试。因为系统测试运行安装完整的应用程序,如 Web 应用程序,它们通常包含一个 servlet 容器和一个相关联的数据库。这些测试的目的在于校验那些设计为端对端操作的外部接口(如 Web 应用程序中的 Web 页面)。
弹性优先级
作为总体规则,应在任何可能的时候避免测试用例继承。许多 JUnit 扩展框架都提供特定的可继承测试用例,以便利于测试一个特定的架构。然而由于 Java™ 平台的单一继承范例,使得从框架中继承类的测试用例饱受缺乏弹性之苦。通常,这些相同的 JUnit 扩展框架提供了代理 API,这使得联合各种不具有严格继承结构的框架变得十分简单。
由于设计它们的目的是为了测试功能完整的应用程序,因而系统测试趋向于增加运行次数而不是减少设置测试的总时间。例如,清单 1 和 清单 2 中展示的逻辑测试在运行前 需要下列步骤:
创建一个 war 文件,该文件包含所有相关 Web 内容,如 JSP 文件、servlet、第三方的 jar 文件、图像等。
更多精彩
赞助商链接