我们运行junit测试来测试我们的java代码库。每个测试都会将一些数据读/写到mysql数据库(可能是多个表)。似乎测试留下了干扰其后运行的测试的数据。我们是否有可能在每次单元测试结束时中止/回滚测试所做的所有更改?
我们正在使用cactus框架来测试glassfish应用服务器中的ejbs。 ejbs可以调用AS中可以读/写DB的代码。
我们正在使用hibernate和jdbc与数据库进行通信。
答案 0 :(得分:0)
可能的解决方案是在每次测试后重置数据库,并在每次测试后运行一个简单的数据库脚本,但这会消耗很多时间强>
如果您正在运行集成测试,那么您将使用真正的EJB,您可以做的很少,因为在测试开始和结束时让它们理解是很复杂的。对于简单的操作,您可以强制异常导致回滚,但如果您在单个测试中使用多个事务,则无效。