1

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回のテストが実行された後にのみトランザクションがロールバックされることです。もちろん、テスト内にループを書くこともできますが、トランザクションがいつロールバックされるか (各テストの後またはすべてのテストの後) を制御できれば、より良いでしょう。これを制御する方法はありますか、それともループで立ち往生していますか?

4

1 に答える 1

5

設計上、Spock はデータ駆動型特徴メソッドのすべての反復を個別のテストと見なします。spock-spring プラグインはそれを尊重しており、現在のところ (プラグインを変更しない限り) 回避する方法はありません。

于 2013-01-04T07:27:12.453 に答える