Spring+SpringMVC+Mybatis Web集成单元

2018-07-27  本文已影响0人  红烧清蒸

主要是记录对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

上一篇 下一篇

猜你喜欢

热点阅读