<blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">I come from the same background as you, so I hear where you&#39;re coming
<br>from. We made a conscious decision, however, not to support custom
<br>messages almost two years ago and I&#39;m not sure if its ever even come
<br>up before. If it has, it was a long time ago.
</blockquote><div><br>[nod]&nbsp; Perhaps as I get into the mindset, I&#39;ll find this desire slips away.<br></div><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">
If you follow the conventions of one expectation per example, and your
<br>example is well named, this is less of a problem. Here&#39;s a common
<br>idiom:
<br>
<br>describe Person do
<br>&nbsp; def valid_attributes
<br>&nbsp; &nbsp; {:name =&gt; &#39;joe smith&#39;}
<br>&nbsp; end
<br>&nbsp; before(:each) do
<br>&nbsp; &nbsp; @person = Person.new(valid_attributes)
<br>&nbsp; end
<br>&nbsp; it &quot;should be valid with valid attributes&quot; do
<br>&nbsp; &nbsp; @person.should be_valid
<br>&nbsp; end
<br>&nbsp; it &quot;should be invalid with no name&quot; do
<br>&nbsp; &nbsp; @<a href="http://person.name">person.name</a> = nil
<br>&nbsp; &nbsp; @person.should_not be_valid
<br>&nbsp; end
<br>end
</blockquote><div><br>Using this as an example, if a new validation rule is added, this test will fail without indicating /why/.&nbsp; Sure, I can get that answer in other ways, but I&#39;d hate to discover things like:<br><br>
it &quot;should be valid with valid attributes&quot; do<br>&nbsp; # puts @person.errors if !@person.valid<br>&nbsp; @person.should be_valid<br>end <br><br>(Which I&#39;ve seen when people have to repeatedly diagnose issues in a test; I&#39;d prefer a failure message to the above)
<br></div><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">Together, these different examples help to tell the whole story, and
<br>when one example fails you know why it&#39;s failing - its just that the
<br>message is in the example&#39;s name instead of a custom assertion
<br>message.
</blockquote><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">Make sense?
</blockquote><br>Yes and no; test isolation and good names is a decent practice even in XUnit, but clearly it&#39;s that much stronger in RSpec, and I&#39;m in favour of that.&nbsp; However, I find that often test failures involve unexpected changes (
e.g. the REST service didn&#39;t return a status code of 201, as you expected, because a validation rule changed and the validation failed), which aren&#39;t as easy to message.<br><br>Still, i&#39;m willing to give this approach a shot and see if this bothers me increasingly less.&nbsp; 
<br><br>&nbsp;&nbsp; - Geoffrey<br>-- <br>Geoffrey Wiseman<br>