This repository has been archived by the owner on Jun 12, 2021. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 46
Scenarios with examples
Adam Ralph edited this page Sep 29, 2013
·
18 revisions
xBehave.net allows the passing of example values for the parameters in a scenario method.
This is equivalent to Cucumber's Scenario Outlines and works in a similar manner to xUnit.net's [Theory]
attribute for data driven testing.
E.g.
[Scenario]
[Example(1, 2, 3)]
[Example(2, 3, 5)]
public void Addition(int x, int y, int expectedAnswer, Calculator calculator, int answer)
{
"Given the number {0}"
.Given(() => { });
"And the number {1}"
.And(() => { });
"And a calculator"
.And(() => calculator = new Calculator());
"When I add the numbers together"
.When(() => answer = calculator.Add(x, y));
"Then the answer is {2}"
.Then(() => Assert.Equal(expectedAnswer, answer));
}
results in this output:
There are few things to note here:
- Each parameter which does not have a corresponding example value (based purely on number of values/parameters) continues to have the default value passed for the parameter type (
null
for reference types and zero values for value types). - Each
[Example]
effectively generates a new scenario, and the first number in the three part numeric shows the ordinal number of each scenario - The example values can be injected into the step descriptions using the format
{n}
wheren
is the ordinal number of the example value.