我正在使用 dbsetup 进行数据库测试。问题是我无法在每次测试后使用一直有效的方法来回滚数据,该方法使用@Transactional 注释对测试用例(或方法)进行注释。我想这是因为 dbsetup 使用 DataSource 本身,所以 Spring 无法跟踪对数据库执行的操作。如何使这项工作?
问问题
180 次
我正在使用 dbsetup 进行数据库测试。问题是我无法在每次测试后使用一直有效的方法来回滚数据,该方法使用@Transactional 注释对测试用例(或方法)进行注释。我想这是因为 dbsetup 使用 DataSource 本身,所以 Spring 无法跟踪对数据库执行的操作。如何使这项工作?
DbSetup 在任何方面都与 Spring 不紧密。它从 DataSource 获取 JDBC 连接,并在完成后提交。
使用 DbSetup 的推荐方法是在每次测试之前清除和填充表。使用 DbSetupTracker 可以避免无用的重新填充,以防测试使用与之前的测试相同的数据,并且之前的测试没有改变数据。这在用户指南中有所描述。