return new FlatXmlDataSet(new File("test/conf/seed.xml"));
}
ClassNotFoundException, SQLException {
Class.forName("org.hsqldb.jdbcDriver");
final Connection jdbcConnection =
DriverManager.getConnection("jdbc:hsqldb:hsql://127.0.0.1",
"sa", "");
return new DatabaseConnection(jdbcConnection);
}
}
加入了 DbUnit,测试用例真的是可重复的了。在 handleSetUpOperation() 方法中,每当运行一个测试用例时,DbUnit 对数据执行一个 CLEAN_INSERT。此操作本质上将一个数据库的数据清空并插入一个新的数据集,从而删除任何之前创建的小部件。
再一次探讨什么是 DbUnit?
DbUnit 是一个 JUnit 扩展,用于在运行测试时将数据库放入一个已知状态中。开发人员使用 XML 种子文件将特定数据插入到测试用例所依赖的数据库中。因而,DbUnit 便利了依赖于一个或多个数据库的测试用例的可重复性。
但那并不意味着已经结束了对测试用例可重复性这一话题的探讨。事实上,一切才刚刚开始。
重复系统测试
我喜欢将 清单 1 和 清单 2 中定义的测试用例称为系统测试。因为系统测试运行安装完整的应用程序,如 Web 应用程序,它们通常包含一个 servlet 容器和一个相关联的数据库。这些测试的目的在于校验那些设计为端对端操作的外部接口(如 Web 应用程序中的 Web 页面)。