<分区>
有谁知道实现以下 DAO 测试流程的方法:
- 运行 SQL 脚本以创建通用数据库设置(将数据插入所有表)
- 测试 DAO1
- 测试 DAO2
- …
- 清理在第 1 步中创建的数据库数据
使用 Spring、Hibernate、JUnit、Maven 堆栈。
我知道最佳实践是我们为每个测试 DAO (@BeforeClass) 创建数据,并在所有测试完成后清理相同的数据 (@AfterClass)。
但在我们的例子中,不同数据库表之间的依赖关系太多(客户端的遗留数据库 :-( 目前对此无能为力)。用测试数据填充每个表也需要许多其他表中的数据. 因此,为每个 DAO 单独创建数据将是非常困难和耗时的。因此,我们真的只需要创建一次 DB 测试数据。
我在 BaseDAO 中使用静态 block 创建了测试数据(由每个 DAO 测试类扩展)——这显然只运行一次。但是当所有测试(所有 DAO 测试子类的)都完成时如何清理相同的问题。基类中的@AfterClass 拆卸方法将在每次 DAO 测试类完成后运行。
请指教。