Можно ли использовать 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
пример:
- Из
WebApplicationContext
загружается либо через Spring TestContext Framework (например, используя@ContextConfiguration
а также@WebAppConfiguration
) или вручную. - В автономном режиме с помощью
@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)