Как поделиться данными, созданными в шаге от class1 с шагом из class2 в огурце? - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь поделиться объектом, созданным в методе шага из Class1, с методом шага, созданным в Class2.Давайте покажем вам мой конкретный пример:

У меня есть MainStep с Main.feature:

 public class MainStep extends SpringTest {

    private ResponseEntity<String> responseEntity;

    @When("^the client calls (.*)$")
    public void theClientCalls(String path) {
        responseEntity = restTemplate.getForEntity(getServer() + path, String.class);
        CucumberCache.INSTANCE.putObject("resp", responseEntity);
    }

    @Then("^the client receives status code (\\d+)$")
    public void theClientReceivesStatusCode(int statusCode) {
        assertTrue(responseEntity.getStatusCode().value() == statusCode);
    }

    @Then("^the client receives body (.*)$")
    public void theClientReceives(String body) {
        assertTrue(responseEntity.getBody().equals(body));
    }
}


Feature: the version can be retrieved

  Scenario: client gets 200 and hello world
    When the client calls /main
    Then the client receives status code 200
    Then the client receives body hello world

  Scenario: client gets 200 and bye world
    When the client calls /second
    Then the client receives status code 200
    Then the client receives body bye world

Теперь давайте покажем вам DbStep и Db.feature:

public class DbStep extends SpringTest {
    @Then("^the client verifies that the response is not null$")
    public void theClientVerifiesThatTheResponseIsNotNull() {
        CucumberCache.INSTANCE.getObject("resp").ifPresent(resp -> {
            assertNotNull(resp);
        });
    }
}

Feature: the version can be retrieved

  Scenario: client gets 200 and hello world
    When the client calls /db
    Then the client verifies that the response is not null
    Then the client receives status code 201
    Then the client receives body db status ok

Итаквот моя проблема: в основном сценарий Db.feature выполняет почти те же действия, что и сценарии Main.feature, за исключением шагаClientVerifyThatTheResponseIsNotNull.

Итак, чтобы подвести итог, как я могу поделиться объектом ответа, созданным в MainSteps # theClientCalls с DbSteps # theClientVerizesThatTheResponseIsNotNull?(в настоящее время, как вы видите, я использую одноэлементную карту, на которой я пишу и получаю ответ).

С уважением,

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