Сообщение об исключении Hamcrest, в то время как фактическое и ожидаемое совпадают
Я получаю сообщение об исключении ниже, в то время как фактическое и ожидаемое совпадают. Указанная причина сбоя представляется неверной.
@Test
public static void Verify()
{
given().
get("http://services.groupkt.com/country/get/all").
then().body("RestResponse.messages", equalTo("[Total [249] records
found.]"));}
FAILED: Verify
java.lang.AssertionError: 1 expectation failed.
JSON path RestResponse.messages doesn't match.
Expected: [Total [249] records found.]
Actual: [Total [249] records found.]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) and much more....
2 ответа
@Prasad: Это из-за строкового символа я подозреваю. Попробуйте этот код, он должен работать
@Test
public void Verify()
{
given()
.get("http://services.groupkt.com/country/get/all")
.then()
.body("RestResponse.messages[0]",equalTo("Total [249] records found."));}
А поскольку у всех есть доступ к вашему используемому URL, я мог бы предложить вам следующее решение:
@Test
public void restAssured() {
RestAssured.given()
.accept(ContentType.JSON)
.get("http://services.groupkt.com/country/get/all")
.then()
.statusCode(200)
.body("RestResponse.messages", hasSize(1))
.body("RestResponse.messages[0]", is("Total [249] records found."))
.body("RestResponse.messages", is(Arrays.asList("Total [249] records found.")));
}
Следите за различными возможными утверждениями:
- утверждение размера списка
- утверждение одного элемента
- полное утверждение всего списка