Spring+SpringMVC+Mybatis Web集成单元测试的问题

主要是记录对Controller层进行单元测试的过程中遇到的问题

问题1:运行测试用例报错

java.lang.IllegalStateException: Failed to load ApplicationContext

如图1:

图1

原因:缺少注解@WebAppConfiguration,声明集成测试环境使用的ApplicationContext将是WebApplicationContext类型

问题2:运行测试用例报错

java.lang.ClassNotFoundException: javax.servlet.ServletContext

如图2:


图2

原因:缺少了servlet-api.jar,加上即可以,但是需要注意版本问题,由于我使用的spring4,导入的servlet-api的版本是2.5的,导致报错:

java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig

这是因为Spring4 与servlet2.5兼容性问题造成的,Spring4需要使用servlet3.0以上的版本



测试用例实现

图3

mockMvc.perform():是模拟一个request请求

andExpect:定义断言,可以附加多个定义期望值,上图中是判断返回的状态码是否为200

andReturn:直接显示所有返回结果

图3代码中的get,andExpect,status(),print(),都是来源于3个静态引用:

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;

import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;



参考:

https://blog.csdn.net/qianjiangqi/article/details/51087014

http://jinnianshilongnian.iteye.com/blog/2004660

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容