[rspec-users] AfterCurrentScenario block

Matt Wynne matt at mattwynne.net
Fri Apr 17 12:06:50 EDT 2009


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



More information about the rspec-users mailing list