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など)を使うときのみにしたほうがようでしょう。
