Можно ли использовать MockMvc без SpringJUnit4ClassRunner?

Я хочу использовать MockMvc без SpringJUnit4ClassRunner.

   public static void main(String[] args) {
     WebApplicationContext wac = ...;
     MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
   }

Поскольку main не вызывается Springcontainer, как мне создать WebApplicationContext?

Возможно ли что-то вроде следующего неработающего псевдокода?

 WebApplicationContext wac = new WebApplicationContext("classpath./service-context.xml");

1 ответ

Решение

Есть два основных способа создания MockMvc пример:

  1. Из WebApplicationContextзагружается либо через Spring TestContext Framework (например, используя @ContextConfiguration а также @WebAppConfiguration) или вручную.
  2. В автономном режиме с помощью @Controller учебный класс.

Оба они описаны в разделе " Параметры настройки" главы " Тестирование" справочного руководства.

Чтобы создать WebApplicationContext вручную, создать экземпляр GenericWebApplicationContext и загрузите определения bean-компонентов из XML-файлов следующим образом:

GenericWebApplicationContext context = new GenericWebApplicationContext();
new XmlBeanDefinitionReader(context).loadBeanDefinitions(/* XML config files */);
context.refresh();

Или из @Configuration классы как это:

GenericWebApplicationContext context = new GenericWebApplicationContext();
new AnnotatedBeanDefinitionReader(context).register(/* @Configuration classes */);
context.refresh();

Обратите внимание, что вы хотите настроить и установить MockServletContext в context также.

С Уважением,

Сэм (автор Spring TestContext Framework)

Другие вопросы по тегам