1

我将 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 次测试后才回滚,而不是在每次测试后回滚。我当然可以在测试中编写一个循环,但如果我可以控制事务回滚的时间会更好 - 在每次测试之后或在所有测试之后。有什么办法可以控制这个还是我被困在循环中?

4

1 回答 1

5

根据设计,Spock 将数据驱动的特征方法的每次迭代都视为单独的测试。spock-spring 插件尊重这一点,目前没有办法绕过它(不修改插件)。

于 2013-01-04T07:27:12.453 回答