A menudo quiero comparar matrices y asegurarme de que contengan los mismos elementos, en cualquier orden. ¿Hay una manera concisa de hacer esto en RSpec?
Aquí hay métodos que no son aceptables:
#to_set
Por ejemplo:
expect(array.to_set).to eq another_array.to_set
o
array.to_set.should == another_array.to_set
Esto falla cuando las matrices contienen elementos duplicados.
#sort
Por ejemplo:
expect(array.sort).to eq another_array.sort
o
array.sort.should == another_array.sort
Esto falla cuando los elementos de la matriz no se implementan #<=>
eq
marcador, por ejemploexpect([1, 2]).to_not eq([2, 1])
to_set
y ensize
realidad no hace lo que quieres. Por ejemplo, [a, b, b] coincidiría con [a, a, b]. ¡Salud!