Bikeshedding from a non-Rails developer here, but rather than seeing
if two items are sorted correctly, you could specify that one object
is treated as coming before another object

object1.should < object2

or

sorting(object1, object2).should eq -1

It might make it easier to read.

Andrew

On Wed, Aug 15, 2012 at 10:13 AM, Gregory McIntyre
<[email protected]> wrote:
> I agree with Paul and David. I would use strategy (2) with Machinist'd
> data or stubs.
>
> 1. Set up two items, out of order.
> 2. Assert ordered(items) swaps them.
>
> If you are concerned about further cases such as numerical sorting
> versus string sorting, or edge cases, then put those in too, but
> David's code looks good to me, as a minimum check.
>
> My only addition is that sometimes I stick a .map(&:name) on the end
> of my subject to make the output nicer.
>
> describe OrderedFooList
>   let(:shorts) { stub(:name => "Shorts") }
>   let(:socks) { stub(:name => "socks") }
>
>   describe '#ordered' do
>     subject { OrderedFooList.new(input).ordered.map(&:name) }
>     context 'when given socks and Shorts in that order' do
>       let(:input) { [socks, shorts] }
>       it { should == ['Shorts', 'socks'] }
>     end
>   end
> end
>
> -Greg
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Ruby or Rails Oceania" 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/rails-oceania?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
or Rails Oceania" 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/rails-oceania?hl=en.

Reply via email to