有谁知道的方式来实现测试DAO的流程如下:创建和清洁DB设置一次测试所有的DAO
- 运行SQL脚本来创建公共DB设定(将数据插入到所有表)
- 测试DAO1
- 测试DAO2
- ...
- 清理DB数据步骤创建1
使用Spring,Hibernate,JUnit,Maven堆栈。
我明白,最好的做法是,我们为每个测试DAO(@BeforeClass)和清理相同的数据所有测试完成后(@AfterClass)之后。
但是在我们的例子中,不同数据库表之间的依赖关系太多了(客户端的遗留数据库:-(目前无法做到这一点)。用测试数据填充每个表需要将其他许多表中的数据作为那么,为每个DAO单独创建数据将是非常困难且耗时的,因此,我们确实需要创建DB测试数据只需要一次
我已经使用BaseDAO中的静态块创建了测试数据DAO Test Class) - 它显然只运行一次,但是当所有DAO Test子类中的所有测试都完成时,如何进行相同的清理问题在基类中的@AfterClass拆卸方法每次都会在DAO Test类之后运行完成。
请指教。
不知道是否maven是要走的路。有时你需要在执行每个测试方法之前准备数据库。是否有可能通过Maven实现这一点? –
好的,你说得对。问题的细节是只准备一次。 –
是的。我们用JUnit'@ MethodRule'(或JUnit 4.9中的'@ TestRule')来完成它,它在每个测试方法之前设置数据库,并在之后进行清理。无论哪种方式,OP已经在使用Maven,并且要求数据库设置环绕整个测试阶段,而不是测试方法,如问题所述。 – Daniel