[rspec-users] AfterCurrentScenario block
zach.dennis at gmail.com
Fri Apr 17 12:58:57 EDT 2009
On Fri, Apr 17, 2009 at 12:31 PM, Aslak Hellesøy
<aslak.hellesoy at gmail.com> wrote:
> Den 17. april. 2009 kl. 18.06 skrev Matt Wynne <matt at mattwynne.net>:
>> Is there currently a way to register a block to run after the current
>> scenario completes?
After is used after *any* scenario completes thought, right? If you
add an After block inside of a step definition, it's going to be
executed from that point on, rather than clear out at the end of the
scenario that ran it, correct?
>> If not, we've implemented one. Would anyone be interested in us submitting
>> it as a patch to Cucumber?
> How is this different from After?
* It clears out after the current scenario.
* It doesn't require to be run for scenarios that don't need it.
* It allows you to cleanly place the handler next to the code that it
is so closely related
* It doesn't require you know the name of the scenario(s) that would
need it (it's simply determined by if a step definition is run)
>> Something like
>> Given "something that will not be rolled back after the scenario is
>> finished" do
>> original = SomeClass.a_value
>> SomeClass.a_value = 7
>> AfterCurrentScenario do
>> # undo stuff
>> SomeClass.a_value = original
>> If you're interested, our use case is for pagination, where we explicitly
>> set the length of a page to something much shorter than the default in a
>> step, so that we only have to create a small number of objects to spill over
>> onto another page. The page length value is set on a class variable, and
>> would pollute other tests, so we want to reset it when the scenario is
>> e.g. Given the maximum number of Users to display is 2
>> And there are 3 Users
>> When I view the Users page
>> Then I should see the text "see all 3 users"
>> Matt Wynne
>> rspec-users mailing list
>> rspec-users at rubyforge.org
> rspec-users mailing list
> rspec-users at rubyforge.org
More information about the rspec-users