没有SpringJUnit4ClassRunner可以使用MockMvc吗?

时间:2014-07-17 09:51:06

标签: spring spring-mvc spring-test spring-test-mvc

我想在不使用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");

1 个答案:

答案 0 :(得分:1)

创建MockMvc实例有两种主要方法:

  1. 来自WebApplicationContext,通过 Spring TestContext Framework 加载(例如,使用@ContextConfiguration@WebAppConfiguration)或手动加载。
  2. 使用@Controller类的独立模式。
  3. 参考手册的 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的作者)