Успокойтесь: идентификатор пути JSON не совпадает - PullRequest
0 голосов
/ 09 апреля 2019

Я хочу проверить с уверенностью, что после звонка на отдыхе был возвращен идентификатор. Остальной конечной точкой является правильный вызов, и я на 100% уверен, что идентификатор возвращен, потому что я отладил ответ остальных. Итак, вот формат идентификатора json, который возвращается:

{"id:":1}

Вот мой чек с уверенностью:

given().port(port).
        contentType("application/json").
               body(jsonObject).
               when().
               post(BASE_URL).
               then().
               assertThat().
               statusCode(201).contentType("application/json").body("id", equalTo(1));

Я уже много искал и пробовал много альтернативных методов, чтобы equalTo (), например. содержит, запускается с и т. д. Но я думаю, что проблема в том, что остальные не могут найти «идентификатор» внутри JSON.

Кстати, есть ли другие зависимости, которые мне нужны? Я также добавил groovy-json, потому что в остальном уверенность не может быть использована.

      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-json</artifactId>
      <version>2.5.6</version>
      <scope>compile</scope>
    </dependency>```

1 Ответ

0 голосов
/ 09 апреля 2019

equalTo - сопоставитель Hamcrest, который вы должны статически импортировать из org.hamcrest.Matchers.Я воспроизвел то же самое локально и смог сделать это

import org.testng.annotations.Test;
import io.restassured.RestAssured;
import static org.hamcrest.Matchers.*;

public class StackTest {

    @Test
    public void TC_1() {
        RestAssured.given().
        contentType("application/json").
        body("{\r\n" + 
                "    \"id\": 504\r\n" + 
                "}").
        when().
        post("http://localhost:3000/posts").
        then().
        assertThat().statusCode(201).body("id", equalTo(504));
        }
}
...