コンポーネントクラスを使用したコンテキスト設定
コンポーネントクラス(Java ベースのコンテナー構成を参照)を使用して ApplicationContext
をテスト用にロードするには、テストクラスに @ContextConfiguration
のアノテーションを付け、コンポーネントクラスへの参照を含む配列で classes
属性を構成できます。次の例は、その方法を示しています。
Java
Kotlin
@ExtendWith(SpringExtension.class)
// ApplicationContext will be loaded from AppConfig and TestConfig
@ContextConfiguration(classes = {AppConfig.class, TestConfig.class}) (1)
class MyTest {
// class body...
}
1 | コンポーネントクラスの指定。 |
@ExtendWith(SpringExtension::class)
// ApplicationContext will be loaded from AppConfig and TestConfig
@ContextConfiguration(classes = [AppConfig::class, TestConfig::class]) (1)
class MyTest {
// class body...
}
1 | コンポーネントクラスの指定。 |
コンポーネントクラス 「コンポーネントクラス」という用語は、次のいずれかを指します。
|
@ContextConfiguration
アノテーションから classes
属性を省略すると、TestContext フレームワークはデフォルトの構成クラスの存在を検出しようとします。具体的には、AnnotationConfigContextLoader
および AnnotationConfigWebContextLoader
は、@Configuration
javadoc で指定されているように、構成クラス実装の要件を満たすテストクラスの static
ネストクラスをすべて検出します。構成クラスの名前は任意です。さらに、テストクラスには、必要に応じて複数の static
ネストされた構成クラスを含めることができます。次の例では、OrderServiceTest
クラスは、テストクラスの ApplicationContext
をロードするために自動的に使用される Config
という名前の static
ネストされた構成クラスを宣言します。
Java
Kotlin
@SpringJUnitConfig (1)
// ApplicationContext will be loaded from the static nested Config class
class OrderServiceTest {
@Configuration
static class Config {
// this bean will be injected into the OrderServiceTest class
@Bean
OrderService orderService() {
OrderService orderService = new OrderServiceImpl();
// set properties, etc.
return orderService;
}
}
@Autowired
OrderService orderService;
@Test
void testOrderService() {
// test the orderService
}
}
1 | ネストされた Config クラスから構成情報をロードします。 |
@SpringJUnitConfig (1)
// ApplicationContext will be loaded from the nested Config class
class OrderServiceTest {
@Autowired
lateinit var orderService: OrderService
@Configuration
class Config {
// this bean will be injected into the OrderServiceTest class
@Bean
fun orderService(): OrderService {
// set properties, etc.
return OrderServiceImpl()
}
}
@Test
fun testOrderService() {
// test the orderService
}
}
1 | ネストされた Config クラスから構成情報をロードします。 |