概要
SpringBootのテストで使用する各アノテーションの簡単なメモと参考リンク
JUnit5を使用
試行時に使用したライブラリ
build.gradle
testImplementation('org.springframework.boot:spring-boot-starter-test:2.1.5.RELEASE'){
exclude module: 'junit'
}
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.2'
参考文献
@SpringBootTest
DIコンテナにBeanとして登録するコンポーネントをテストしたり、mock化する場合に宣言する
- DIコンテナ(
ApplicationContext)を生成する - これをつけないとテストしたいクラスを
@Autowiredできない -
webEnvironment属性を設定するとテスト実行時にサーバーを立ち上げる - デフォルトだとサーバーを立ち上げずに、Mock Web環境を提供
46.3 Testing Spring Boot Applications
@WebMvcTest
@Controllerや@RestControllerのテストをする場合に宣言する
-
@Controllerコンポーネントのみを対象にDIコンテナ(ApplicationContext)を生成する -
MockMvcを@Autowiredできるようにしてくれる
46.3.10 Auto-configured Spring MVC Tests
@RestClientTest
Http通信するコンポーネントをテストする場合に宣言する
-
MockRestServiceServerを@Autowiredできるようにしてくれる