放心预期不符
rest-assured expected doesn't match
我试试
@Test
public void testGetSingleUser() {
given().expect().
statusCode(200).contentType(ContentType.JSON).
body("_testingString", equalTo("got it")).when().
get("http://localhost:8080/getIt");
}
但总是收到此错误消息
java.lang.AssertionError : JSON path _testingString dosen't match.
Expected : "got it" got : [got it]
如何忽略“”和[]的问题
谢谢
注意:这是未经测试的代码片段,但在查看您的错误跟踪时它可能会对您有所帮助。
尝试
equalTo(Arrays.asList("got it"))
而不是
equalTo("got it")
当您收到错误提示时,同样如此:
JSON path total doesn't match.
Expected: 2000
Actual: <[2000]>
这意味着您的结果 (Actual:) 正在数组中。
因此,您应该使用可验证值 'inside an array' 的放心命令(例如,hasItem) .
我下面的代码说明了针对这种情况的解决方案:
RestAssuredWebTestClient
.given()
.webTestClient(mockedWebClient)
.queryParam("cost", 1000)
.when()
.get(TEMPL_AGGREG_DATE)
.then()
.log()
.everything()
.statusCode(OK.value())
.body("_id", hasItem(project2.getStartDate()))
.body("total", hasItem((int)project2.getEstimatedCost()))
.body(matchesJsonSchemaInClasspath("contracts/aggregations/CostsGroupByStartDate.json"))
;
我试试
@Test
public void testGetSingleUser() {
given().expect().
statusCode(200).contentType(ContentType.JSON).
body("_testingString", equalTo("got it")).when().
get("http://localhost:8080/getIt");
}
但总是收到此错误消息
java.lang.AssertionError : JSON path _testingString dosen't match.
Expected : "got it" got : [got it]
如何忽略“”和[]的问题 谢谢
注意:这是未经测试的代码片段,但在查看您的错误跟踪时它可能会对您有所帮助。
尝试
equalTo(Arrays.asList("got it"))
而不是
equalTo("got it")
当您收到错误提示时,同样如此:
JSON path total doesn't match. Expected: 2000 Actual: <[2000]>
这意味着您的结果 (Actual:) 正在数组中。
因此,您应该使用可验证值 'inside an array' 的放心命令(例如,hasItem) .
我下面的代码说明了针对这种情况的解决方案:
RestAssuredWebTestClient
.given()
.webTestClient(mockedWebClient)
.queryParam("cost", 1000)
.when()
.get(TEMPL_AGGREG_DATE)
.then()
.log()
.everything()
.statusCode(OK.value())
.body("_id", hasItem(project2.getStartDate()))
.body("total", hasItem((int)project2.getEstimatedCost()))
.body(matchesJsonSchemaInClasspath("contracts/aggregations/CostsGroupByStartDate.json"))
;