[rspec-users] [Cucumber] Fail a scenario from After or AfterStep

Luke Melia luke at lukemelia.com
Fri May 15 12:53:55 EDT 2009


On May 15, 2009, at 10:16 AM, aslak hellesoy wrote:

> Can you show me the code you would want to put in AfterStep that would
> detect a 500 error?

I've written a simple piece of rack middleware (included below) that  
will create a file in the event a 500 is raised. I would clear the  
file before each scenario and check for it's existence in the  
AfterStep. For example:

Before do
   File.delete('/tmp/rails.error') if File.exist?('/tmp/rails.error')
end

AfterStep do |scenario|
   if File.exist?('/tmp/rails.error')
     scenario.fail("Failed because app raised a 50x error.")
   end
end

Here's the rack piece, for the curious:

class RackErrorTouch
   def initialize(app, options = {})
     @app = app
     @path = options[:path]
   end

   def call(env)
     rack_response = @app.call(env)
     if rack_response.first >= 500
       `touch #{@path}`
     end
     rack_response
   end
end
--
Luke Melia
luke at lukemelia.com
http://www.lukemelia.com/



More information about the rspec-users mailing list