Сообщение об исключении 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.")));
}

Следите за различными возможными утверждениями:

  • утверждение размера списка
  • утверждение одного элемента
  • полное утверждение всего списка
Другие вопросы по тегам