Spring MVC测试框架详解——客户端测试
上一篇《Spring MVC测试框架详解——服务端测试》已经介绍了服务端测试,接下来再看看如果测试Rest客户端,对于客户端测试以前经常使用的方法是启动一个内嵌的jetty/tomcat容器,然后发送真实的请求到相应的控制器;这种方式的缺点就是速度慢;自Spring 3.2开始提供了对RestTemplate的模拟服务器测试方式,也就是说使用RestTemplate测试时无须启动服务器,而是模拟一个服务器进行测试,这样的话速度是非常快的。
2 RestTemplate客户端测试
整个环境在上一篇《Spring MVC测试框架详解——服务端测试》基础上进行构建。
@RestController
@RequestMapping("/users")
public class UserRestController {
private UserService userService;
@Autowired
public UserRestController(UserService userService) {
this.userService = userService;
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public User findById(@PathVariable("id") Long id) {
return userService.findById(1L);
}
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<User> save(@RequestBody User user, UriComponentsBuilder uriComponentsBuilder) {
//save user
user.setId(1L);
MultiValueMap headers = new HttpHeaders();
headers.set("Location", uriComponentsBuilder.path("/users/{id}").buildAndExpand(user.getId()).toUriString());
return new ResponseEntity(user, headers, HttpStatus.CREATED);
}
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.NO_CONTENT)
public void update(@RequestBody User user) {
//update by id
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public void delete(@PathVariable("id") Long id) {
//delete by id
}
}
正文到此结束
- 本文标签: Windows
- 本文链接: http://www.it586.cn/article/598
- 版权声明: 本文由miger原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权