Is there currently a way to register a block to run after the current scenario completes?

If not, we've implemented one. Would anyone be interested in us submitting it as a patch to Cucumber?

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
  end
end

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 finished.

  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
http://blog.mattwynne.net
http://www.songkick.com

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to