0

我们运行 junit 测试来测试我们的 java 代码库。每个测试都会读取/写入一些数据到 mysql 数据库(可能是多个表)。似乎测试留下的数据会干扰在它之后运行的测试。我们是否有可能在每个单元测试结束时中止/回滚测试所做的所有更改?

我们正在使用 cactus 框架来测试 glassfish 应用服务器中的 ejb。ejbs 可以调用 AS 中可以读取/写入 DB 的代码。

我们正在使用 hibernate 和 jdbc 与数据库通信。

4

1 回答 1

0

一个可能的解决方案是在每次测试后使用可以在每次测试后运行的简单数据库脚本重置数据库,但这会消耗大量时间

如果您正在运行集成测试,那么您将使用真正的 EJB,对此您无能为力,因为要让它们了解测试的开始和结束时间会很复杂。对于一个简单的操作,您可以强制异常导致回滚,但如果您在单个测试中使用超过 1 个事务,这将不起作用。

于 2013-04-26T21:17:31.280 回答