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 and @AfterScenario annotations allow the corresponding methods to be executed before and after each scenario. Optionally, the ScenarioType can be specified to execute only upon that type, e.g. for scenarios parametrised by examples. In addition, @AfterScenario allows the setting of an optional Outcome value, which specifies whether the method should be executed depending on the outcome of the scenario:


    @BeforeScenario
    public void beforeEachScenario() {
        // ...
    }

    @BeforeScenario(uponType=ScenarioType.EXAMPLE)
    public void beforeEachExampleScenario() {
        // ...
    }
        
    @AfterScenario // equivalent to  @AfterScenario(uponOutcome=AfterScenario.Outcome.ANY)
    public void afterAnyScenario() {
        // ...
    }

    @AfterScenario(uponType=ScenarioType.EXAMPLE)
    public void afterEachExampleScenario() {
        // ...
    }
        
    @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: