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.
I think that this pattern of using a matcher as a predicate might be
useful in future debugging sessions.
–
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
On Apr 18, 2008, at 5:14 PM, Rick DeNatale wrote:
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
On Fri, Apr 18, 2008 at 7:13 PM, Scott T.
[email protected] wrote:
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.
+1 Its awesome.
I also use intellij Idea, which has a console. The console does IO
with the debugger.
Whats cool is I can click or use a shortcut to jump to the file + line
link that the debugger gives.
On Fri, Apr 18, 2008 at 10:13 PM, Scott T.
[email protected] wrote:
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
Well I wasn’t really talking about just using the debugger, but using
matcher.matches?(value) instead of value.should matcher as a way to
trigger a conditional break.
–
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
On Apr 19, 2008, at 12:43 PM, Brian T. wrote:
failing expectation looked like this:
And rdebug broke right before the expectation would have thrown its
outside
of rails projects, in failing test cases, etc.
+1 Its awesome.
I also use intellij Idea, which has a console. The console does IO
with the debugger.
Whats cool is I can click or use a shortcut to jump to the file + line
link that the debugger gives.
Yeah - I often use ruby-debug’s mate command, which will open up the
file in textmate on the line and file
you’re currently on (it’s incredibly convenient).