Я нашел здесь интересное расширение для сопоставителей из Rspec, касающееся каждого: http://xtargets.com/2011/08/12/rspec-meta-expectations-over-collections
Так что я вставил этот помощник в мой spec_helper
RSpec::Matchers.define :each do |meta|
match do |actual|
actual.each_with_index do |i, j|
@elem = j
i.should meta
end
end
failure_message_for_should do |actual|
"at[#{@elem}] #{meta.failure_message_for_should}"
end
, который позволяет мне писать
users.should each satisfy {|u| u.name.should be_starts_with 's'}
, а затем появляется сообщение об ошибке:
в [1] ожидается #User для удовлетворения блока
, который дает мне первый индекс ошибки,С некоторым дополнением к сообщению об ошибке, я уверен, что смогу вывести детали этого объекта, которые не совпадают, и это кажется довольно хорошим решением.
Есть мысли?Я не рубин, только начинаю с рельсов.Было бы неплохо получить больше информации от