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

aslak hellesoy aslak.hellesoy at gmail.com
Fri May 15 15:36:19 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:
>

Thanks for doing that. I have one more favour to ask: Can you show me
an example of a StepDefinition that would cause the file to be
created?

Then I might be able to suggest an alternative solution with the same result.

Aslak

> 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/
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list