JBehave подсценариев?

Можно ли добавить в сценарий несколько блоков given-when-then (что-то вроде подсценария)?

Вот пример того, что я имею в виду:

A sample story with a collection of scenarios

Narrative:
  As a dev
  In order to do work
  I want multiple sub-scenarios :-)

Scenario: A sample collection scenario

  Given step1...
  When  step1...
  Then  step1...

  Given step2...
  When  step2...
  Then  step2...

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

Любые подсказки, как я мог этого избежать? Заранее спасибо!


person rlegendi    schedule 29.07.2014    source источник


Ответы (1)


Да, вы можете сделать это таким образом.

Простой пример истории:

A sample story with a collection of scenarios

Narrative:
  As a dev
  In order to do work
  I want multiple sub-scenarios :-)

Scenario: A sample collection scenario

Given step 1
And step 11

When step 1
And step 11

Then step 1
And step 11

Given step 2
When step 2
Then step 2

Java-код:

public class Test extends Steps {

    @Given("step 1")
    public void givenStep1() {
        System.out.println("Given Step 1");
    }

    @Given("step 11")
    public void givenStep11() {
        System.out.println("Given Step 11");
    }

    @Given("step 2")
    public void givenStep2() {
        System.out.println("Given Step 2");
    }

    @When("step $step")
    public void when(String step){
        System.out.println("When Step " + step);
    }

    @Then("step $step")
    public void then(String step){
        System.out.println("Then Step " + step);
    }
}

и результаты теста:

Running story main/resources/test.story
Given Step 1
Given Step 11
When Step 1
When Step 11
Then Step 1
Then Step 11
Given Step 2
When Step 2
Then Step 2



Обратите внимание, как в этом примере сопоставляется ключевое слово And.
Когда And используется под строкой Given, оно трактуется как Given, если ниже Then - то оно сопоставляется как ключевое слово Then и т.д.

person krokodilko    schedule 07.09.2014
comment
Вау, спасибо! Скоро проверю! Не уверен, почему это не сработало для меня, давайте дадим еще один шанс :-) - person rlegendi; 07.09.2014