JBehave子场景?

时间:2014-07-29 08:55:10

标签: java 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...

作为一种解决方法,我可以使用多个场景,但这需要重写一些胶水代码来初始化结构(方法之前和之后)。

任何暗示我怎么能避免这种情况?提前谢谢!

1 个答案:

答案 0 :(得分: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关键字等。