【发布时间】:2018-03-24 03:26:49
【问题描述】:
我想使用 REST-assured 来测试我的 REST API 而不是 Spring 的 MockMvc。
我的想法是我想使用 REST-assured 库从异步调用的响应中获取状态代码。
查看下方了解详情:
我使用这些依赖项:
'io.rest-assured:rest-assured:3.0.5'
'io.rest-assured:spring-mock-mvc:3.0.5'
当我这样做时:
mockMvc.perform(asyncDispatch(result)).andExpect(status().isAccepted());
我能够在下面获得此状态代码(.andDo(print()) 的输出),但我想使用 REST-assured 获得相同的结果:
Async:
Async started = true
Async result = <202 Accepted,{}>
有了 REST-assured 我只能在下面得到这个状态码:
MockHttpServletResponse:
Status = 200
Error message = null
Headers = {}
Content type = null
Body =
Forwarded URL = null
Redirected URL = null
Cookies = []
我试过这样:
given()
.accept(MediaType.APPLICATION_JSON_UTF8_VALUE)
.contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)
.body(new ObjectMapper().writeValueAsString(myDto))
.when()
.put(URL)
.then()
.apply(print())
.expect(request().asyncStarted())
.expect(request().asyncResult(notNullValue()))
.expect(status().isAccepted());
测试失败:
java.lang.AssertionError: Status
Expected :202
Actual :200
提前致谢
【问题讨论】:
标签: mocking spring-test rest-assured spring-boot-test spring-test-mvc