In newer Rspec versions this is no longer necessary.
To test whether two arrays have the same elements regardless of order, you can use the =~ matcher in RSpec < 2.11:
actual_array.should =~ expected_array
If either side is an ActiveRecord scope rather than an array, you should call to_a on it first, since =~ does not play nice with scopes:
actual_scope.to_a.should =~ expected_scope.to_a
If you use RSpec >= 2.11 we recommend using the match_array or contain_exactly matchers instead of =~.
Use the eq matcher only if the order of records matters.
Posted by Henning Koch to makandra dev (2011-02-17 13:16)