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