放心预期不符

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"))
    ;