Step Annotations

JBehave supports the following method step annotations:

Each annotation holds a regex pattern as value, which is used to match the candidate steps to the textual step:

    @Given("a stock of symbol $symbol and a threshold of $threshold")
    public void aStock(String symbol, double threshold) {
        // ...
    }

    @When("the stock is traded at $price")
    @Alias("the stock is exchanged at $price") // single alias    
    public void theStockIsTradedAt(double price) {
        // ...
    }

    @Then("the alert status should be $status")
    @Aliases(values={"the trader should be alerted of status $status",
                     "the alert status is at $status"}) // multiple aliases    
    public void theAlertStatusShouldBe(String status) {
        // ...
    }

The use of aliases is optional.

Scenario Annotations

JBehave supports the following method scenario annotations:

The @BeforeScenario annotation holds no value and it allows the corresponding method to be executed before each scenario, while the @AfterScenario holds an optional Outcome value, which specifies whether the method should be executed depending on the outcome of the scenario:


    @BeforeScenario
    public void beforeEachScenario() {
        // ...
    }
        
    @AfterScenario // equivalent to  @AfterScenario(uponOutcome=AfterScenario.Outcome.ANY)
    public void afterAnyScenario() {
        // ...
    }
        
    @AfterScenario(uponOutcome=AfterScenario.Outcome.SUCCESS)
    public void afterSuccessfulScenario() {
        // ...
    }
        
    @AfterScenario(uponOutcome=AfterScenario.Outcome.FAILURE)
    public void afterFailedScenario() {
        // ...
    }

Story Annotations

JBehave supports the following method story annotations:

The @BeforeStory and @AfterStory annotations allow the corresponding methods to be executed before and after each story, either a GivenStory or not:


    @BeforeStory // equivalent to @BeforeStory(uponGivenStory=false)
    public void beforeStory() {
        // ...
    }

    @BeforeStory(uponGivenStory=true)
    public void beforeGivenStory() {
        // ...
    }
        
    @AfterStory // equivalent to @AfterStory(uponGivenStory=false)
    public void afterStory() {
        // ...
    }

    @AfterStory(uponGivenStory=true)
    public void afterGivenStory() {
        // ...
    }
    

Stories Annotations

JBehave supports the following method stories annotations:

The @BeforeStories and @AfterStories annotations allow the corresponding methods to be executed before and after a collection of stories:


    @BeforeStories
    public void beforeStories() {
        // ...
    }

    @AfterStories
    public void afterStories() {
        // ...
    }
    

Parameter Annotations

JBehave supports the following parameter annotations:

Parameter annotations are used in parameter injection.

Configuration Annotations

JBehave supports the following configuration annotations: