NoMethodError запускает тесты на огурцы

Я получаю отказ всякий раз, когда пытаюсь запустить этот тест на огурец в приложении rails. Определение шага «И я нажимаю» работает в другом месте, но здесь оно каждый раз терпит неудачу! И я нигде не могу найти, чтобы я использовал метод `start_with?'

Вот вывод ошибки:

    And I click "Add a Line Item"                            # features/step_definitions/first_test_steps.rb:17
  undefined method `start_with?' for nil:NilClass (NoMethodError)
  ./features/step_definitions/first_test_steps.rb:18:in `/^I click "(.*?)"$/'
  features/create_quote.feature:19:in `And I click "Add a Line Item"'

А вот код для моего определения шага:

When /^I click "(.*?)"$/ do |this|
 click_on(this)
end

Есть идеи?


person David McFarlane    schedule 05.02.2013    source источник


Ответы (1)


Если "Добавить позицию" является ссылкой, используйте

first(:link, "Add a Line Item") 

и если кнопка "Добавить позицию" - используйте

first(:button, "Add a Line Item")
person vijay chouhan    schedule 05.02.2013
comment
Это кнопка - где я должен использовать этот код? Можете ли вы сказать мне, почему это терпит неудачу в настоящее время? - person David McFarlane; 05.02.2013
comment
замените click_on(this) на page.first(:link, Add a Line Item).click - person RobertH; 05.02.2013
comment
Capybara версии 2 теперь обновлена ​​с некоторыми изменениями, поэтому она дает сбой. вы должны использовать:-› first(:button, #{this}) внутри определения шага когда - person vijay chouhan; 08.02.2013