我使用下面的代码
编写了一个简单的测试@Test
public void exampleRestTest() {
RestAssured.baseURI = "https://jsonplaceholder.typicode.com/";
Response res = RestAssured.get("posts/1");
res.print();
res.then()
.body("id", equalTo(1))
.body("userId", equalTo(1))
.body("title",contains("sunt aut facere repellat provident occaecati excepturi optio reprehenderit"));
res.print()的JSON是:
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit suscipit recusandae consequuntur expedita et cum reprehenderit molestiae ut ut quas totam nostrum rerum est autem sunt rem eveniet architecto"
}
测试输出:
java.lang.AssertionError: 1 expectation failed.
JSON path title doesn't match.
Expected: iterable containing ["sunt aut facere repellat provident occaecati excepturi optio reprehenderit"]
Actual: sunt aut facere repellat provident occaecati excepturi optio reprehenderit
为什么呢? 我必须从包含?
的iterable中逃脱答案 0 :(得分:0)
你想使用'包含'匹配器只? '含有' matcher检查期望的Iterable对象是否包含在实际的集合对象中。
你应该使用' containsString'匹配器如下:
.body("title",containsString("sunt aut facere repellat provident occaecati excepturi optio reprehenderit"))