我将 Spock 测试框架与 Spock-Spring 扩展一起使用,它允许您使用 Springs 的 @Transactional 和 @Rollback 注释。鉴于我得到了这样的数据驱动测试:
@Transactional
@Rollback
def "Some Test"(int foo) {
when:
someDao.insert(foo);
then:
notThrown(Exception)
where:
foo << [0..100]
}
现在当我运行这个时会发生什么,这个测试被执行了 101 次,“foo”的值不同。还会发生的是,事务在每次测试后回滚。我想要的是事务仅在 101 次测试运行后回滚,而不是在每次测试后回滚。我当然可以在测试中编写一个循环,但如果我可以控制事务何时回滚会更好——在每次测试之后或所有测试之后。有什么方法可以控制这个,还是我会陷入循环?
最佳答案
根据设计,Spock 将数据驱动特征方法的每次迭代都视为单独的测试。 spock-spring 插件尊重这一点,目前没有办法解决它(不修改插件)。
关于java - Spock-Spring - 如何控制围绕数据驱动测试的事务何时被回滚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14135169/