Spock-Spring - 如何控制数据驱动测试的事务何时回滚?

时间:2013-01-03 08:13:57

标签: java spring groovy spock

我正在使用Spock测试框架和Spock-Spring扩展,它允许您使用Springs的@Transactional和@Rollback注释。鉴于我得到了这样的数据驱动测试:

@Transactional
@Rollback
def "Some Test"(int foo) {
  when:
  someDao.insert(foo);

  then:
  notThrown(Exception)

  where:
  foo << [0..100]
}

现在运行时会发生什么,是这个测试用不同的“foo”值执行了101次。还会发生的是,事务在每次测试后回滚。我想要的是,事务只在101次测试运行后回滚,而不是在每次测试后回滚。我当然可以在测试中编写一个循环,但如果我可以控制事务回滚的时间 - 在每次测试之后或在所有测试之后,它会更好。有没有办法控制这个或我是否坚持循环?

1 个答案:

答案 0 :(得分:5)

通过设计,Spock将数据驱动特征方法的每次迭代视为单独的测试。 spock-spring插件很荣幸,并且目前无法解决它(不修改插件)。