Тестирование огурца - получение RoutingError - PullRequest
0 голосов
/ 18 сентября 2011

Что не так, ребята. Пожалуйста, помогите.
Когда я запускаю тест на огурец, у меня появляется эта ошибка:

No route matches {:action=>"show", :controller=>"accounts"} (ActionController::RoutingError)
      ./features/support/paths.rb:40:in `path_to'

показывает рейк-маршруты:

account GET    /accounts/:id(.:format)        {:action=>"show", :controller=>"accounts"}

cucumber_test.feature

   Scenario:
    Given...
    And...
    Then i should be on Show page

функция / поддержка / paths.rb

when /^Show page$/
      account_path @account

routes.rb

Myapp::Application.routes.draw do  
resources :accounts  

1 Ответ

1 голос
/ 19 сентября 2011

Имхо, вы ошибаетесь, что каким-то образом у вас установлена ​​переменная @account.

Вот некоторые из возможных подходов.Вы можете использовать:

when /the account page/
account_path(Account.first)

или лучше, более чистый и многократно используемый (я не знаю вашей схемы для учетной записи, поэтому я использовал общее имя):

when /the account page for account named ".*"/
        account_name = page_name.scan(/".*"/).first.gsub("\"", '') 
        account = Account.find_by_name(account_name)
        account_path(account)

Конечноесли вы определили свой веб-шаг "Я на связи" следующим образом:

Given /^(?:|I )am on (.+)$/ do |page_name|
  visit path_to(page_name)
end
...