Я часто хочу порівнювати масиви і переконайтесь, що вони містять однакові елементи в будь-якому порядку. Чи є лаконічний спосіб зробити це в 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]. Ура!