Обычно, когда я использую @SpringBootTest
, я получаю полный контекст bean-компонентов.Я могу @Autowire
все виды bean-компонентов, которые доступны после запуска приложения.Теперь в области spring-integration-test
libary @SpringIntegrationTest
этого не делает.
Как и обещает модуль тестирования, вы можете использовать
@Autowired
private MockIntegrationContext mockIntegrationContext;
Однако, после проверки bean-компонентаВ этом примере я обнаружил, что нет bean!
Пример теста:
@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@SpringIntegrationTest
public class AppTest {
@Autowired
private MockIntegrationContext mockIntegrationContext;
@Test
public void contextLoads() {
// put breakpoint to inspect field
System.out.println(mockIntegrationContext);
}
}
Когда я, однако, запускаю следующий код, я получаю полный контекст:
@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@SpringBootTest
public class App2Test {
@Autowired
private ListableBeanFactory beanFactory;
@Test
public void contextLoads() {
Assert.isTrue(beanFactory.getBeanDefinitionCount() > 0)
}
}
Почему это так?Как можно добиться аналогичного результата с spring-integration-test
?
Материалы для чтения: https://docs.spring.io/spring-integration/docs/current/reference/html/testing.html