Пробельные символы очень важны в регулярных выражениях
. С пробелами на любом конце канала вам нужно использовать этот шаг:
Then %{I should see phrase 1 }
или
Then %{I should see phrase 2}
(Обратите внимание, что дополнительный пробел в конце на первом и между see
и phrase2
на втором).Регулярное выражение все еще ищет те пробельные символы, в которых вы их указали.
Ваше регулярное выражение необходимо изменить на:
Then /^I should see (phrase 1|phrase 2)$/ do |phrase_name|
end
Символ |
в регулярном выражении будет соответствовать либо все символы с левой стороны, или все символы с правой стороны (парантезы, конечно, ограничивают его, чтобы не занимать всю строку).
Также вы должны передать значение в свой блок, как я сделал с phrase_name
, когда вы используете скобки таким образом.Хотя я, вероятно, предпочел бы увидеть шаг, определенный следующим образом:
Then /^I should see phrase ([\d]+)$/ do |phrase_number|
end
, чтобы он соответствовал всем трем типам фраз, и вам больше не нужно определение фразы 1.[\ d] + будет соответствовать любому числовому символу 1 или более раз.
Затем вы можете делать все, что вам нужно, на основе номера фразы_отправки, который был отправлен.Мне было бы интересно увидеть определение вашего сценария, но я не уверен, что вы собираетесь правильно его использовать, основываясь на этой информации.Возможно, я мог бы получить некоторый контекст, если бы увидел остальную часть истории.