RecordNotFound bubbling thru to cucumber


#1

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


#2

Which version of cucumber / webrat are you using?

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


rspec-users mailing list
removed_email_address@domain.invalid
http://rubyforge.org/mailman/listinfo/rspec-users

Matt W.
http://blog.mattwynne.net
http://www.songkick.com


#3

On Fri, Feb 6, 2009 at 6:12 PM, Jeff T. removed_email_address@domain.invalid
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


#4

On Mon, Feb 9, 2009 at 6:11 AM, aslak hellesoy
removed_email_address@domain.invalid 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. (removed_email_address@domain.invalid)
ESCAPE POD - The Science Fiction Podcast Magazine
http://www.escapepod.org


#5

On Mon, Feb 9, 2009 at 10:21 AM, aslak hellesoy
removed_email_address@domain.invalid 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
removed_email_address@domain.invalid
http://rubyforge.org/mailman/listinfo/rspec-users


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


#6

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


#7

On Mon, Feb 9, 2009 at 3:58 PM, Stephen E. removed_email_address@domain.invalid 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