Я определил этот шаг:
Then /^the "([^"]*)" field(?: within (.*))? should be empty$/ do |field, parent|
with_scope(parent) do
field = find_field(field)
field_value = (field.tag_name == 'textarea') ? field.text : field.value
if field_value.respond_to? :should
field_value.to_s.should == ''
else
assert_equal('', field_value.to_s)
end
end
end
и когда я запускаю свой сценарий, возникает следующая ошибка:
Тогда поле «Город» в форме «Покупка дома» должно быть пустым # Неопределенное совпадение поля «Город» в форме «Покупка дома» должно быть пустым »:
features/step_definitions/my_steps.rb:1:in `/^the "([^"]*)" field(?: within (.*))? should be empty$/'
features/step_definitions/web_steps.rb:35:in `/^(.*) within (.*[^:])$/'
Упомянутый шаг выглядит следующим образом:
When /^(.*) within (.*[^:])$/ do |step, parent|
with_scope(parent) { When step }
end
Итак, у меня много вопросов ...
Как можно определить мой шаг, не сопоставляя его? When /^(.*) within (.*[^:])$/
кажется абсолютно неизбежным.
Однако этот шаг не вызывает двусмысленности:
features/step_definitions/web_steps.rb:141
Then /^the "([^"]*)" field(?: within (.*))? should contain "([^"]*)"$/ do |field, parent, value|
with_scope(parent) do
field = find_field(field)
field_value = (field.tag_name == 'textarea') ? field.text : field.value
if field_value.respond_to? :should
field_value.should =~ /#{value}/
else
assert_match(/#{value}/, field_value)
end
end
end
- Не могу ли я просто удалить шаг
When /^(.*) within (.*[^:])$/
? Это часть "системы"? Я имею в виду, это в /step_definitions/web_steps.rb
, и это идет с rake cucumber:install
.