我经常想比较数组,并确保它们以任何顺序包含相同的元素。在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
当数组元素未实现时,此操作将失败 #<=>
对于那些偶然发现这里相反的人:顺序应该相同。使用
—
Dennis
eq
匹配器,例如expect([1, 2]).to_not eq([2, 1])
to_set
,size
实际上并没有做您想要的。例如[a,b,b]将匹配[a,a,b]。干杯!