Загрузить ApplicationContext внутри теста интеграции Junit - PullRequest
0 голосов
/ 02 февраля 2019

Класс конфигурации с приведенной ниже конфигурацией будет загружать все необходимые классы в приложении в виде 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.

1 Ответ

0 голосов
/ 02 февраля 2019

@ WebAppConfiguration - это аннотация уровня класса, которая используется для объявления того, что ApplicationContext, загружаемый для интеграционного теста, должен быть WebApplicationContext.Наличие @WebAppConfiguration в классе теста указывает, что для теста должен быть загружен WebApplicationContext с использованием пути по умолчанию к корню веб-приложения.Чтобы переопределить значение по умолчанию, укажите явный путь к ресурсу через атрибут value.

@ WebAppConfiguration Sample

...