Springs の @Transactional および @Rollback アノテーションを使用できるようにする Spock-Spring 拡張機能と共に、Spock テスト フレームワークを使用しています。次のようなデータ駆動型テストを取得したとします。
@Transactional
@Rollback
def "Some Test"(int foo) {
when:
someDao.insert(foo);
then:
notThrown(Exception)
where:
foo << [0..100]
}
これを実行すると、このテストは異なる値の「foo」で 101 回実行されます。また、各テストの後にトランザクションがロールバックされます。私が望むのは、各テストの後ではなく、101回のテストが実行された後にのみトランザクションがロールバックされることです。もちろん、テスト内にループを書くこともできますが、トランザクションがいつロールバックされるか (各テストの後またはすべてのテストの後) を制御できれば、より良いでしょう。これを制御する方法はありますか、それともループで立ち往生していますか?