Assert Two Arrays Have The Same Items With RSpec
Methods that return arrays of values with inconsistent orderings can be annoying to test with the #eq matcher. To keep your test from fickering, you'd have to ensure the comparison is the same every time.
it "has the correct values" do
expect(fetch_colors(params).sort).to eq(["blue", "green", "yellow"])
endIt'd be better if we could keep our test focused and simple. If sort order isn't something we care about, then it shouldn't be part of our test. RSpec has a matcher for this kind of scenario -- #match_array.
it "has the correct values" do
expect(fetch_colors(params)).to match_array(["blue", "green", "yellow"])
endThis allows us to ensure that each side of the comparison has the same set values, irrespective of ordering.
Last updated
Was this helpful?