在Junit测试用例中模拟WebapplicationContext

时间:2018-04-08 12:16:48

标签: spring-mvc junit mocking

我正在尝试为内部使用webapplication上下文的方法运行Junit测试用例。但是我的问题是我无法在Junit中创建或模拟WebApplicationContext。构建并运行应用程序时,实际代码执行正常并创建了Web应用程序上下文,但在Junit中它无法创建相同的内容。

我的测试用例有以下标签

@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationcontext.xml")

我尝试测试的方法有以下代码

WebApplicationContext context = 
ContextLoader.getCurrentWebApplicationContext();
context.getBean("checkStatus", checkStatus.class);

此时我得到空指针异常,因为它无法从ContextLooader获取webapplication上下文,我可以模拟一些如何使它不给空指针或者一些如何获取实际的webapplication上下文以便我可以使用它

我是否应该在应用程序上下文xml文件中添加一些WebApplicationContext加载代码。在我的web.xml文件中有一个关于ContextLoaderListener的条目我是否应该在我的Junit测试用例中从web.xml读取配置?

请提供一些建议。

1 个答案:

答案 0 :(得分:0)

您的问题很多,包括您的环境,版本号的详细信息,尤其是您尝试解决的确切问题。

我们使用https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html#boot-features-testing-spring-boot-applications-testing-with-running-server中的说明完美地运行junit和spring boot。

但由于我们没有关于您的用例的信息,我无法判断这是否适合您。