Junit自動ロールバック非活性

SpringbootはUnitテストでSQL DBに更新した内容をロールバックしてくれます。

このとき、ロールバックを非活性する方法についてメモしたいと思います。

@Transactional(propagation = NOT_SUPPORTED)
  • import org.springframework.transaction.annotation.Transactional
  • テストクラスに上記のアノテーションをつけることで非活性にできます。

サンプル

@RunWith(SpringRunner.class)
@DataJpaTest
@Transactional(propagation = NOT_SUPPORTED)
public class SampleTests {}
  • @DataJpaTestはテストを実行するときに内臓型のSQL DBを実行するというアノテーションです。(H2など)

終わりに

テストを回すたびにロールバックされず、更新し続けるのはよくないと思われるので、内臓型DB(H2など)を使うときのみにしたほうがようでしょう。

コメントを残す