id的类型是一个整数,而不是字符串。
我一直在测试一个api,我在测试中寻找了ID 24,我的实际和预期是一样的。我假设我使用了不正确的语法。body,我应该放什么?
@Test
public void test_get_userid() {
given().
when().
get("http://bpdts-test-app-v2.herokuapp.com/user/24").
then().
assertThat().
statusCode(200).
and().
contentType(ContentType.JSON).
and().
body("id", equalTo("24"));
}
java.lang.AssertionError: 1 expectation failed.
JSON path id doesn't match.
Expected: 24
Actual: 24
所提供的JSON对象在键"id"
下具有数字24
。它不是JSON字符串,应该是"24"
。
你试过equalTo(24)
吗?如数字文字,而不是字符串文字。
正确答案是
given().when().get("http://bpdts-test-app-v2.herokuapp.com/user/24").then().assertThat().statusCode(200).and()
.contentType(ContentType.JSON).and().body("id", equalTo(24));
您可以使用以下代码进行测试,该代码将给出值的类型为"0";java.lang.Integer">
Class<? extends Object> m1 = given().when().get("http://bpdts-test-app-v2.herokuapp.com/user/24").getBody()
.jsonPath().get("id").getClass();
System.out.println(m1);