Java 可以对SpringREST调用进行junit测试吗?

Java 可以对SpringREST调用进行junit测试吗?,java,unit-testing,http,rest,spring-3,Java,Unit Testing,Http,Rest,Spring 3,是否可以测试内部包含rest方法的控制器 @RequestMapping(value = "/user", method = RequestMethod.PUT,consumes="application/json") public ResponseEntity<String>createNewAccount(HttpEntity<String>request) { //do something } 然后,它将进入我的控制器,根据所使用的uri和htt

是否可以测试内部包含rest方法的控制器

    @RequestMapping(value = "/user", method = RequestMethod.PUT,consumes="application/json")
    public ResponseEntity<String>createNewAccount(HttpEntity<String>request) {
//do something

}
然后,它将进入我的控制器,根据所使用的uri和http方法查找请求映射,然后通过http头和httpMockRequest测试对象的内容执行和发送

Spring或JavaEE中存在类似的东西吗


顺便说一句,我正在使用Spring3。

最简单的方法就是实例化控制器并直接向控制器调用该方法。您的测试应该只测试控制器的实现,而不是整个流程(从Servlet到您的方法)

我通常在测试实现中执行类似的操作:

Controller c = new Controller();
// configure controller c with mock services
ResponseEntity<String> re = c.createNewAccount(new HttpEntity<String>("{\"property\":10}"));
// check response entity (parsing json of re.getBody())
控制器c=新控制器();
//使用模拟服务配置控制器c
ResponseEntity re=c.createNewAccount(新的HttpEntity(“{\”属性\“:10}”);
//检查响应实体(解析re.getBody()的json)
对于标题,您有以下构造函数:

HttpEntity(T body, MultiValueMap<String, String> headers)
HttpEntity(T体,多值映射头)

URI本身在这里并不重要,因为它只用于解析控制器和方法。

最简单的方法就是实例化控制器并直接向控制器调用方法。您的测试应该只测试控制器的实现,而不是整个流程(从Servlet到您的方法)

我通常在测试实现中执行类似的操作:

Controller c = new Controller();
// configure controller c with mock services
ResponseEntity<String> re = c.createNewAccount(new HttpEntity<String>("{\"property\":10}"));
// check response entity (parsing json of re.getBody())
控制器c=新控制器();
//使用模拟服务配置控制器c
ResponseEntity re=c.createNewAccount(新的HttpEntity(“{\”属性\“:10}”);
//检查响应实体(解析re.getBody()的json)
对于标题,您有以下构造函数:

HttpEntity(T body, MultiValueMap<String, String> headers)
HttpEntity(T体,多值映射头)
URI本身在这里并不重要,因为它只用于解析控制器和方法