Spring Boot のテスト
Spring Boot のテスト: @SpringBootTest、@WebMvcTest、@DataJpaTest、MockMvc、TestRestTemplate、テストスライス
1統合テストで Spring Boot の完全なコンテキストを読み込むには、どのアノテーションを使用しますか?
統合テストで Spring Boot の完全なコンテキストを読み込むには、どのアノテーションを使用しますか?
回答
@SpringBootTest はすべての bean と自動構成を含む、アプリケーションの完全なコンテキストを読み込みます。このアノテーションはアプリケーション全体を必要とする統合テストで使用されます。@WebMvcTest と @DataJpaTest はコンテキストの一部のみを読み込み(テストスライス)、@ContextConfiguration はコンテキストを手動で構成するための、より低レベルなアノテーションです(より複雑)。
2Spring Boot におけるテストスライス(test slicing)とは何ですか?
Spring Boot におけるテストスライス(test slicing)とは何ですか?
回答
テストスライスとは、テストを高速化するために Spring コンテキストの特定の一部のみを読み込むことを意味します。たとえば、@WebMvcTest は web コンポーネント(controller、filter)のみを読み込み、@DataJpaTest は JPA repository のみを読み込みます。これにより起動時間が短縮され、不要な bean の読み込みを避けてテストのパフォーマンスが向上します。
3Spring MVC の controller のみをテストするには、どのアノテーションを使用しますか?
Spring MVC の controller のみをテストするには、どのアノテーションを使用しますか?
回答
@WebMvcTest は Spring MVC の controller をテストするために特別に設計されています。このアノテーションは web コンポーネント(controller、@ControllerAdvice、filter、interceptor)のみを読み込み、MockMvc を自動的に構成します。@SpringBootTest はコンテキスト全体を読み込みます(単一の controller のテストには不要)。@DataJpaTest は repository 用、@RestClientTest は HTTP クライアント(RestTemplate、WebClient)のテスト用です。
Spring Boot Test における @MockBean アノテーションの目的は何ですか?
@WebMvcTest を使ったテストで HTTP リクエストをシミュレートするには、どのオブジェクトを使用しますか?
+27 面接問題