springbootのテストについて-備忘録-

springbootでテスト書こうとしたときにつまづいたので、備忘録

アノテーションの仕分け

@SpringBootTestなし

  • @Autowiredは使用してもDIされない -> @injectMocksを使用する
  • @MockBeanは使用ないかも(@InjectMocksの方の変数がnullになった) -> @Mockにする
  • @Mockは使用できる

@SpringBootTestあり

  • @injectMocksは使用できない -> @Autowiredを使用する
  • @MockBeanは使用できる
  • @Mockは使用できる

@WebMvcTest

  • Controllerのテストで使用
  • HTTPのMethod等が使用できる
  • アノテーションに引数にcontrollerクラス情報を引数に渡す(ex. @WebMvcTest(SampleController.class) )

起動

@SpringBootTestあり

起動遅い … tomcat等が立ち上がっているからであろう

@SpringBootTestなし

@SpringBootTestありよりは速い