Как передать данные по шагам огурца (Тест API автоматизации тестирования гарантирован) - PullRequest
0 голосов
/ 27 июня 2018

Я создал тест API, который попадает в конечную точку и получает ответ обратно, однако я изо всех сил пытаюсь использовать этот ответ в рамках другого шага огурца.

Мой первый шаг использует следующий метод:

public Response booking(SharedStepData sharedStepData, String path, BookingType bookingType) throws IOException {
    String url = "https://example.net." + System.getProperty("endpoint") + "/v10/" + path + "Booking";

    RestAssured.useRelaxedHTTPSValidation();
    String payload = createBookingPayload(sharedStepData, bookingType);
    Response response = RestAssured
            .given().contentType(ContentType.JSON)
            .log().all()
            .body(payload)
            .when().post(url)
            .thenReturn();

    ResponseBody body = response.getBody();;
    return response;
}

Я знаю, что нужно сохранить этот ответ, а затем использовать его в другом шаговом методе для выполнения другого действия, такого как использование определенных данных из ответа для достижения другой конечной точки, какие-либо идеи?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Способ поделиться состоянием между шагами - сохранить его в поле в классе, в котором реализованы шаги.

Способ совместного использования состояний между шагами, когда шаги реализованы в разных классах, состоит в том, чтобы совместно использовать общий объект в обоих классах реализации. Идиоматический способ сделать это в Java - использовать внедрение зависимостей.

Я написал несколько постов в блоге на эту тему, они могут быть полезны для вас. Самое простое решение - использовать PicoContainer.

0 голосов
/ 27 июня 2018

Здесь вы можете использовать логику инкапсуляции и получить доступ к переменной из другого класса

public class Test{

    private String bookingResponse;

    public String getBookingResponse(){
        return bookingResponse;
    }

    public void setBookingResponse(String response){
        bookingResponse=response;
    } 
}

После вызова первого метода вы можете обновить значение bookingResponse, как показано ниже

Test test=new Test();

test.setBookingResponse(<<Call your first Response Method>>);

Всякий раз, когда вы хотите получить доступ к вышеуказанному ответу, вы можете использовать метод test.getResponse (). Вы получите ответ выше, если вы используете тот же экземпляр класса Test.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...