Hamcrest-有没有办法在使用文件时忽略验证响应正文中的字段?

时间:2018-11-09 20:58:36

标签: testing automation rest-assured hamcrest

我从API的自动化测试开始,我对此感到怀疑:我正在验证Restfull API的方法POST,而当我执行POST时,API返回一些内容,但是内容的某些字段在每个根据示例请求ID。

我正在使用一个文件来声明响应正文,但是我想知道:

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"
    }
  }
}

0 个答案:

没有答案