[rspec-users] Debugging trick.

Scott Taylor mailing_lists at railsnewbie.com
Fri Apr 18 22:13:10 EDT 2008


On Apr 18, 2008, at 5:14 PM, Rick DeNatale wrote:

> Some have probably already discovered this but I've been working
> through some ui stories, using the rails integration test stuff.
>
> I had a story where one very used step was failing in one place.  The
> failing expectation looked like this:
>
>       response.should have_tag("tr.group_info_row td",group_title)
>
> I wanted to look at the response, but only for the case which was
> failing, so I changed this to:
>
>      debugger unless have_tag("tr.group_info_row
> td",group_title).matches?(response)
>      response.should have_tag("tr.group_info_row td",group_title)
>
> And rdebug broke right before the expectation would have thrown its
> exception, and I could see the problem, which was an earlier step
> which had checked that the request had redirected without following
> the redirect.

Yeah - I use this all the time.   I have a textmate snippet called  
debug(tab) which inserts the following:

require "rubygems"; require "ruby-debug"; debugger

This allows me to use it in all sort of contexts - migrations, outside  
of rails projects, in failing test cases, etc.

It should be noted that in other languages (like Smalltalk and lisp)  
the debugger pops up automatically when a test case fails.

I don't know why this technique has never picked up and become popular.

Scott



More information about the rspec-users mailing list