Класс конфигурации с приведенной ниже конфигурацией загрузит все необходимые классы в приложение в виде bean-компонентов путем сканирования компонентов во время запуска приложения, как показано ниже:
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"package1","package2"}
public MvcConfig implements WebMvcConfigurer {
}
Как загрузить контекст веб-приложения в мой интеграционный тест junit? уже пробовал ниже код, который не работает:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { MvcConfig.class })
public class ITtest {
@Autowired
private ApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setup() throws Exception {
this.mockMvc = MockMvcBuilders.webAppContextSetup((WebApplicationContext) this.wac).build();
}
}
Мне нужно создать экземпляр mockMVC с контекстом веб-приложения, как показано в моем методе настройки.
В чем проблема с моим кодом. Я ожидаю, что контекст будет загружен со всеми классами, полученными сканированием пакета класса MvcConfig в моем тесте интеграции junit.
@WebAppConfiguration is a class-level annotation that is used to declare that the ApplicationContext loaded for an integration test should be a WebApplicationContext. The presence of @WebAppConfiguration on a test class indicates that a WebApplicationContext should be loaded for the test using a default for the path to the root of the web application. To override the default, specify an explicit resource path via the value attribute.
Вы можете использовать @TestPropertySources для загрузки свойств. Maven заботится о зависимости банок.
@Bharat, мы используем Gradle. Нужно ли мне также добавлять jar-файлы в тестовый путь для работы интеграционных тестов, указав в качестве зависимостей как testcompile или testRruntime в разделе drpendencies файла build.gradle
Как бы то ни было, если jar не добавляются в сборку Gradle. Добавьте его в тестовую область, инструмент настройки сборки обеспечит наличие jar-файлов в пути к классам во время выполнения тестов.
Теперь MvcConfig.class найден, и junit пытается загрузить классы, присутствующие в сканировании компонентов. Но происходит сбой с ошибкой, когда код используется для получения некоторых свойств с помощью RealTimePropertyInstance. Какие изменения необходимо внести, чтобы включить jar-файлы и свойства, чтобы построить путь интеграционного теста junit для успешного запуска.