Неоднозначный шаг в огурце - PullRequest
0 голосов
/ 08 сентября 2011

Я определил этот шаг:

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.

1 Ответ

0 голосов
/ 09 сентября 2011

Если нормально, отредактируйте web_steps.rb.Фактически, последняя версия Cucumber предлагает полностью удалить его:

# TL;DR: YOU SHOULD DELETE THIS FILE
#
# This file was generated by Cucumber-Rails and is only here to get you a head start
# These step definitions are thin wrappers around the Capybara/Webrat API that lets you
# visit pages, interact with widgets and make assertions about page content.
# If you use these step definitions as basis for your features you will quickly end up
# with features that are:
#
# * Hard to maintain
# * Verbose to read
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...