我想在不使用SpringJUnit4ClassRunner的情况下使用MockMvc。
public static void main(String[] args) {
WebApplicationContext wac = ...;
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
由于spring不会调用main如何创建WebApplicationContext?
是否可以使用以下无效伪代码?
WebApplicationContext wac = new WebApplicationContext("classpath./service-context.xml");
答案 0 :(得分:1)
创建MockMvc
实例有两种主要方法:
WebApplicationContext
,通过 Spring TestContext Framework 加载(例如,使用@ContextConfiguration
和@WebAppConfiguration
)或手动加载。@Controller
类的独立模式。参考手册的 Testing 章节的Setup Options部分都记录了这些内容。
要手动创建WebApplicationContext
,请实例化GenericWebApplicationContext
并从XML文件加载bean定义,如下所示:
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
。
此致
Sam(Spring TestContext Framework的作者)