Ich möchte oft Arrays vergleichen und sicherstellen, dass sie dieselben Elemente in beliebiger Reihenfolge enthalten. Gibt es eine prägnante Möglichkeit, dies in RSpec zu tun?
Hier sind Methoden, die nicht akzeptabel sind:
#to_set
Beispielsweise:
expect(array.to_set).to eq another_array.to_set
oder
array.to_set.should == another_array.to_set
Dies schlägt fehl, wenn die Arrays doppelte Elemente enthalten.
#sort
Beispielsweise:
expect(array.sort).to eq another_array.sort
oder
array.sort.should == another_array.sort
Dies schlägt fehl, wenn die Arrays-Elemente nicht implementiert werden #<=>
eq
Matcher, zBexpect([1, 2]).to_not eq([2, 1])
to_set
undsize
tatsächlich nicht zu tun, was Sie wollen. ZB würde [a, b, b] mit [a, a, b] übereinstimmen. Prost!