Я занимаюсь разработкой теста автоматизации API с использованием Cucumber, Java и Rest-Assured. Я создал функцию огурца:
@criarConta
Esquema do Cenario: Criar uma conta valida
Dado que realizo a chamada no <ambiente> da <api> informando <token_admin> e um email e <senha> novos
Entao devera retornar <status code> e <response>
У меня есть класс dataMap, где я вызываю API и ваш ответ:
public void criarConta(String srtAmbiente, String srtAPI, String srtToken, String srtSenha) {
String uriBase = srtAmbiente;
RequestSpecification apiRequest = RestAssured.given().contentType(ContentType.JSON);
int length = 15;
String email = generateRandomEmail(length);
System.out.println(email);
Map<String, String> emailContent = new HashMap<String,String>();
emailContent.put("email", email);
Map<String, Object> postContent = new HashMap<String,Object>();
postContent.put("customer", emailContent);
postContent.put("password", srtSenha);
apiRequest.header("Authorization", "Bearer "+srtToken).with().body(postContent);
Response response = apiRequest.post(uriBase+srtAPI).prettyPeek();
}
public void responseCriarContaStatus (String srtStatusCode, Response response) {
String status = response.getStatusLine();
Assert.assertTrue(status.contains(srtStatusCode));
}
И класс Steps, где я вызываю шаги Cucumber и методы dataMap:
public class steps extends dataMap {
@Test
@Dado("que realizo a chamada no (.*) da (.*) informando (.*) e um email e (.*) novos")
public void executarCriarConta(String srtAmbiente, String srtAPI, String srtToken, String srtSenha) {
dataMap data = new dataMap();
data.criarConta(srtAmbiente, srtAPI, srtToken, srtSenha);
}
@Test
@Entao("devera retornar (.*) e (.*)")
public void validarStatus (String srtStatusCode, Response response) {
dataMap data = new dataMap();
data.responseCriarContaStatus(srtStatusCode, response);
}
но я получаю следующее сообщение об ошибке:
cucumber.runtime.CucumberException: Don't know how to convert "<response>" into io.restassured.response.Response.
Try writing your own converter:
@cucumber.deps.com.thoughtworks.xstream.annotations.XStreamConverter(ResponseConverter.class)
public class Response {}
Как я могу это исправить? Вы можете помочь? Спасибо