[rspec-users] Failure Messages in RSpec

Geoffrey Wiseman geoffrey.wiseman at gmail.com
Tue Sep 4 17:24:35 EDT 2007

On 9/4/07, Jay Levitt <lists-rspec at shopwatch.org> wrote:
> Seems like, in this case, he'd output @person.errors in his message so
> he could see *why* person was invalid; the "puts" is his current
> hack-around for the lack of custom messages.
> Not a bad idea, really.  (the custom messages, not the hackaround!)

Yes, exactly; I often write the simple case with no extra message first,
then the first time the failing unit test doesn't give me enough information
to fix the problem, I add a custom message that makes it easier.

Examples culled from Test::Unit code:

   - assert_select "a[href*=#{rev_1_url}]", true, "could not find
   #{rev_1_url} in #{@response.body}"
      - In this case, it failed to find the URL, but I wasn't sure why
      that would be; adding the response body made it possible for me
to diagnose
      that the expected URL I'd generated didn't match because the ID was off.
      This kind of response is pretty spammy (entire response text), so I'd
      definitely only employ this if it was present only in the case of failure.
   - assert_response :ok, "Failed to restore contact_info: #{@
   - A similarly spammy @response.body output; wasn't sure why the
      response wasn't :ok, turned out to be a validation failure triggered by
      restoring a no-longer-valid revision.
   - assert customer.valid?, "Fixture customer is expected to be valid:
   #{customer.errors.full_messages.join(', ')}"
      - Pretty similar to the example I used above; unexpected
      validation failure, it's nice to see the errors.

Are any of these critical to RSpec's main goals?  Probably not.  Will it
prevent my adopting RSpec?  Probably not.  Is it still handy to have so that
you don't employ other means (e.g. commented out puts) for repeat diagnosis
of failures?  I think so.

That said, if none of the above convinces you, then by all means, I'll go
ahead with the standard RSpec approach and see if, in a few months, I'm
still missing this feature and, if so, I'll have good RSpec examples in
hand, with which to discuss.  ;)

  - Geoffrey
Geoffrey Wiseman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20070904/9bc522e4/attachment.html 

More information about the rspec-users mailing list