配列を比較して、同じ要素が任意の順序で含まれていることを確認したいことがよくあります。RSpecでこれを行う簡潔な方法はありますか?
許可されない方法は次のとおりです。
#to_set
例えば:
expect(array.to_set).to eq another_array.to_set
または
array.to_set.should == another_array.to_set
配列に重複したアイテムが含まれている場合、これは失敗します。
#sort
例えば:
expect(array.sort).to eq another_array.sort
または
array.sort.should == another_array.sort
配列要素が実装されていない場合、これは失敗します #<=>
eq
例マッチャー、expect([1, 2]).to_not eq([2, 1])
to_set
と、size
実際には期待どおりの結果が得られません。たとえば、[a、b、b]は[a、a、b]と一致します。乾杯!