Дополнительно
Rspec: Должно быть (то или это)
Как лучше всего написать rspec в ситуации, когда допустимо любое из двух (или более) исходов?
Вот пример того, что я хочу сделать. Это явно неправильно (я думаю), но это должно дать вам суть того, чего я пытаюсь достичь:
it "should be heads or tails" do
h="heads"
t="tails"
flip_coin.should be(h || t)
end
И да, я знаю, что могу написать свой собственный rspec matcher "should_be_one_or_the_other(option1,option2)", но это кажется слишком сложным - я надеялся на лучшее решение.
31
3
ActiveSupport предоставляет метод
Object#in?
. Вы можете объединить его с RSpec и просто использовать следующее:Или с помощью нового синтаксиса Rspec 3:
Я бы, наверное, написал что-то вроде этого:
Другой способ написания - с ожиданием справа от should: