1,在测试Controller时,Spring提供了一个MockMvc的类,方便测试Controller。
这个类在spring-test
包下面。下面的依赖是SpringBoot的test starter的依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>1.3.3.RELEASE</version>
</dependency>
参考:
Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
基于Spring MVC做单元测试(一)——使用Spring Test框架
Spring MVC Test Tutorial
2,在测试Controller的时候,一般我们不想真正执行Controller里面的Service,需要Mock相应的Service。所以,一般测试的时候都联合其它测试组件一起用,我使用过的是Mockito+PowerMock。
你可以单独使用Mockito,但如果要测试“私有/静态/final”等类型的方法时,就需要和PowerMock一起使用了。
3,在测试的返回结果中如果有json格式的结果的话,可以使用json-path这个组件来测试json结果,非常方便。
参考:
jsonpath文档
Testing Springframework MVC Rest controllers:和SpringMvc结合的使用例子
Java Code Examples for com.jayway.jsonpath.JsonPath:其它例子