I want to write an acceptance test along the lines of
given the first test has run
when I do this new test
then this new test passes
This is because the first test will leave the data in a valid state to perform the next test
Can I do this in Specflow?
yes you can do this in specflow, but with a slight caveat. this approach will not run one scenario, then run the other, it will run the first scenario on its own, then the dependent scenario will run the first scenario again followed by the second scenario. The order of these may not be deterministic. We have avoided this issue by
@ignore
the first scenario once the dependent scenario is written. As the second scenario always runs the first scenario anyway it doesn't matter that its@ignore
d, as any failure in the first scenario will trigger a failure in the second scenario.What we have done to achieve this is along these lines:
then later in another feature:
The key is in the definition of the step
Given some base scenario has happened
if you define this step like this:
you need to ensure that your class which holds your step definitions derives from the base
Steps
class in specflow to get access to theGiven
,When
andThen
methods:you can find more information on this on the specflow wiki