On 1 December 2010 19:56, Frederick Cheung <[email protected]> wrote: > > > On Dec 1, 5:22 pm, "Andrew M. Kasper" <[email protected]> > wrote: >> > I have a named scope that sets a sort order. In my unit test I can >> > run the query on a set of records (using Factory or fixtures) and >> > check the sort order is correct. I believe though that a find without >> > an explicit sort order may return the records in any order, so how can >> > I be sure that it is not just accidental that they are in the correct >> > order? >> >> Colin: >> >> I would argue that it's unimportant -- even at the unit-level -- *how* >> the test is passing. If every time you run the test it passes, then >> the code does what you specify it does. When there's a problem, >> identify the bug and write a new unit, integration, or functional test >> that eliminates the unexpected behavior, then make that test pass. >> >> I might also argue that it's not up to you to test ActiveRecord. You >> might assert that your named scope is passing the correct sorting >> parameters to ActiveRecord; at that point, it's up to ActiveRecord to >> hold up its end of the bargain. >> > > I'd add that something that may give you some comfort is to endeavour > to write a failing test first.
Absolutely, I will check that the test fails before adding the order clause, but see my reply to Marnen below. Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

