RecordNotFound bubbling thru to cucumber

Hello,

I have a controller action that raises a RecordNotFound exception if
you’re not allowed to see something. In my global application
controller (application.rb), I catch these and render the 404
template. But when I run cucumber (using webrat), it’s getting the
full stacktrace (the step blows up). Any ideas why? I have
consider_all_requests_local turned off in my test.rb.

Jeff

Which version of cucumber / webrat are you using?

On 6 Feb 2009, at 17:12, Jeff T. wrote:


rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Matt W.
http://blog.mattwynne.net

On Fri, Feb 6, 2009 at 6:12 PM, Jeff T. [email protected]
wrote:

Hello,

I have a controller action that raises a RecordNotFound exception if
you’re not allowed to see something. In my global application
controller (application.rb), I catch these and render the 404
template. But when I run cucumber (using webrat), it’s getting the
full stacktrace (the step blows up). Any ideas why? I have

It’s because Cucumber’s Rails support configures ActionController to
send all errors straight through.
See cucumber/rails/world.rb

Patches and suggestions about how to improve this are welcome.
(In most cases it’s easier to spot errors when exceptions ripple
through)

Aslak

On Mon, Feb 9, 2009 at 6:11 AM, aslak hellesoy
[email protected] wrote:

It’s because Cucumber’s Rails support configures ActionController to
send all errors straight through.
See cucumber/rails/world.rb

Patches and suggestions about how to improve this are welcome.
(In most cases it’s easier to spot errors when exceptions ripple through)

Make it a configuration option? Or catch it with a proxy that
inspects the exception then passes it back to Rails, and provide
matchers or formatting options that display Cucumber’s analysis only
when the user wants it?

I’m with Jeff on this: RecordNotFound isn’t necessarily an “error,”
it’s just an exception. One that will frequently come up in normal
user interaction. A well-behaved app will do appropriate things with
that exception and Cucumber should be able to test for those
appropriate things. A testing framework that disrupts the application
behavior cannot test it.


Have Fun,
Steve E. ([email protected])
ESCAPE POD - The Science Fiction Podcast Magazine
http://www.escapepod.org

On Mon, Feb 9, 2009 at 10:21 AM, aslak hellesoy
[email protected] wrote:

Make it a configuration option? Or catch it with a proxy that

Good points. Please create a Lighthouse ticket for this. I’m looking
forward to concrete suggestions about how to make this configurable
and patches I can pull in :slight_smile:

There is already a ticket:

http://rspec.lighthouseapp.com/projects/16211/tickets/49-cucumber-and-rails-controller-error-handling

=)


rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users


Zach D.
http://www.continuousthinking.com

aslak hellesoy wrote:

behavior cannot test it.

Good points. Please create a Lighthouse ticket for this. I’m looking
forward to concrete suggestions about how to make this configurable
and patches I can pull in :slight_smile:

Aslak

Instead of creating a new ticket we should probably continue the
discussion on this ticket:

http://rspec.lighthouseapp.com/projects/16211/tickets/49

-Ben

On Mon, Feb 9, 2009 at 3:58 PM, Stephen E. [email protected] wrote:

inspects the exception then passes it back to Rails, and provide
matchers or formatting options that display Cucumber’s analysis only
when the user wants it?

I’m with Jeff on this: RecordNotFound isn’t necessarily an “error,”
it’s just an exception. One that will frequently come up in normal
user interaction. A well-behaved app will do appropriate things with
that exception and Cucumber should be able to test for those
appropriate things. A testing framework that disrupts the application
behavior cannot test it.

Good points. Please create a Lighthouse ticket for this. I’m looking
forward to concrete suggestions about how to make this configurable
and patches I can pull in :slight_smile:

Aslak