Как исправить ошибку огурца «XStreamConverter (ResponseConverter.class)»? - PullRequest
0 голосов
/ 12 апреля 2019

Я занимаюсь разработкой теста автоматизации 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 {}

Как я могу это исправить? Вы можете помочь? Спасибо

...