Как вы сравниваете несколько значений RHS в RSPec? - PullRequest
3 голосов
/ 31 мая 2011

Я новичок в RSpec, и я пытаюсь запустить «should == A || B», но он игнорирует «B» и сравнивает только с «A» (и, таким образом, терпит неудачу, когда val равен 'B '):
Sample.find(:all).map(&:param).each{|val| val.should == 'A'||'B'}

Кто-нибудь знает, как я включаю' B 'в сравнение?

Ответы [ 4 ]

4 голосов
/ 31 мая 2011
['A', 'B'].should include(val)

Это может привести к прохождению вашей спецификации, но это то, что вы хотите проверить? Что возвращаемое значение является членом набора? Если так, то, возможно, это хорошее решение.

2 голосов
/ 31 мая 2011

Вы также можете сделать:

(x == A || x == B).should be_true
0 голосов
/ 31 мая 2011

Если вы пытаетесь выполнить проверку существования, я переписал бы ваш код следующим образом:

Sample.exists?(:conditions => {:params => %w(A B)}).should_be_true
0 голосов
/ 31 мая 2011
Sample.find(:all).map(&:param).each{ |val| ['A', 'B'].should.include?(value) }

Тем не менее, это выглядит как нечетный тест для написания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...