Cucumber :Как использовать одно и то же регулярное выражение в разных преобразованиях?

У меня есть следующее преобразование:

Transform /^"([^"]+)" Phase$/ do |name|
  # Returns the phase named 'name',
  # or raises an exception if it doesn't exist
end

который работает с таким определением шага:

Then /("(?:[^"]+)" Phase) should do something/ do |phase|
  # Should fail if the specified phase doesn't exist
end

У меня также есть следующее определение шага, в котором используется тот же шаблон "([^"]+)" Phase:

Given /("([^"]+)" Phase) follows ("([^"]+)" Phase)/ do |pre, post|
  # Should create the specified phases 
end

Здесь я не хочу, чтобы определение шага потерпело неудачу, если указанные фазы не существуют. Вместо этого я хотел бы создать фазы.

Я хотел бы создать преобразование, которое создаст фазу для меня, чтобы немного СУШИТЬ определения шагов, но я не могу этого сделать, потому что у меня уже есть упомянутое выше преобразование, которое имеет точно такое же регулярное выражение.

По сути, я хотел бы создать фазу, если это шаг Given, и поднять ошибку, если это не так.

Любые идеи?

7
задан Andrei Botalov 4 July 2012 в 16:31
поделиться