Hamcrest - есть ли способ игнорировать поля в теле ответа проверки при использовании файла? - PullRequest
0 голосов
/ 09 ноября 2018

Я начинаю с тестирования автоматизации API, и у меня есть сомнения: я проверяю метод POST API Restfull, и когда я делаю POST, API возвращает некоторый контент, но некоторые поля контента меняются в каждомзапросить для примера идентификатор.

Я использую файл для подтверждения тела ответа, но мне хотелось бы знать:

1) Есть ли в любом случае использование hamcrest, чтобы игнорировать некоторые поля для утвержденияпока я использую файл со всеми полями?

2) Есть ли лучший способ сделать то, что я хочу?

Мой код:

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import org.junit.Test;

import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import static org.hamcrest.Matchers.equalTo;

public class APICriaContatoTests {

/*VARIAVEIS PARA A REQUEST*/

@Test
public void insereInformandoTodosOsDados()
{
    JsonPath expectedJson = new JsonPath(new File("arquivos\\jsonInsereInformandoTodosOsDados.json"));

    //Criando dados para a requisição

    jsonAsMap.put("name", "Teste de Nome 4");
    jsonAsMap.put("last-name", "Nome Completo 4");
    jsonAsMap.put("email", "abc14@emailfake.com");
    jsonAsMap.put("age", "25");
    jsonAsMap.put("phone", "5519864666664");
    jsonAsMap.put("address", "Rua 4");
    jsonAsMap.put("state", "Estado 4");
    jsonAsMap.put("city", "Cidade 4");

    //executando a requisicao

    RestAssured.given().accept(ACCEPT).contentType(TYPE)
    .body(jsonAsMap)
    .when()
    .post(ENDPOINT_POST_CRIA_CONTATOS)
    .then()
    .statusCode(201)
    .body("", equalTo(expectedJson.getMap("")));
}
}

Данныефайла, который я использую для подтверждения моего тела ответа

{
  "data": {
    "id": "12",
    "type": "contacts",
    "attributes": {
  "name": "Teste de Nome 4",
  "last-name": "Nome Completo 4",
  "email": "abc14@emailfake.com",
  "age": 25,
  "phone": "5519864666664",
  "address": "Rua 4",
  "state": "Estado 4",
  "city": "Cidade 4"
    }
  }
}
...