概要
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
できるようにしてくれる