在Junit集成测试中加载ApplicationContext

时间:2019-02-02 05:31:45

标签: spring junit integration-testing applicationcontext mockmvc

具有以下配置的配置类将在应用程序启动期间通过组件扫描将应用程序中所有必需的类作为bean加载:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"package1","package2"}
public MvcConfig implements WebMvcConfigurer {

}

如何在我的junit集成测试中加载Web应用程序上下文?尝试下面的代码已经不起作用了:

@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();
    }

 }   

我需要使用设置方法中所示的Web应用程序上下文来创建一个模拟MVC实例。

我的代码有什么问题。我希望在我的junit集成测试中,上下文将加载通过MvcConfig类的程序包扫描获得的所有类。

1 个答案:

答案 0 :(得分:0)

  

@WebAppConfiguration是一个类级注释,用于声明为集成测试加载的ApplicationContext应该是WebApplicationContext。   测试类上存在@WebAppConfiguration表示应使用默认的Web应用程序根目录路径为测试加载WebApplicationContext。要覆盖默认值,请通过value属性指定一个显式资源路径。

@WebAppConfiguration Sample