Требование файла аутентификации из lib с огурцом - PullRequest
1 голос
/ 06 марта 2010

Я пробую Огурец в первый раз, и я столкнулся с проблемой. Я пытаюсь использовать отличный генератор аутентификации RyanB , но, похоже, я не могу использовать вспомогательные методы при запуске моих функций Cucumber.

Часть моей функции, вызывающая у меня проблемы:

when I am on the new book page                                   # features/step_definitions/web_steps.rb:18
      undefined local variable or method `current_user' for #<Cucumber::Rails::World:0x13a3b2a> (NameError)
      ./features/support/paths.rb:15:in `path_to'
      ./features/step_definitions/web_steps.rb:19:in `/^(?:|I )am on (.+)$/'
      features/user_story.feature:30:in `When I am on the new book page'

support / paths.rb:

when /the new book page/
  user_path(current_user)+'/books/new'

rout.rb:

resources :users do
  resources :books
end

Часть кода, которая дает мне мои вспомогательные методы аутентификации (например, current_user), находится внутри моей папки lib /. Я пробовал:

require "#{Rails.root}/lib/authentication"

В моем env.rb, но это, похоже, ничего не делает. Так что я должен делать здесь вместо этого? Я чувствую, что для этого должно быть простое решение, но оно просто идет мне в голову.

Дополнительная информация

enm: ​​

RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.6
  - RUBY VERSION: 1.9.2 (2010-03-04 patchlevel -1) [i386-darwin9.8.0]
  - INSTALLATION DIRECTORY: /Users/ekoslow/.rvm/gems/ruby-1.9.2-head%rails3beta
  - RUBY EXECUTABLE: /Users/ekoslow/.rvm/rubies/ruby-1.9.2-head/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/ekoslow/.rvm/gems/ruby-1.9.2-head%rails3beta/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-9
  - GEM PATHS:
     - /Users/ekoslow/.rvm/gems/ruby-1.9.2-head%rails3beta
     - /Users/ekoslow/.rvm/gems/ruby-1.9.2-head%global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-ri --no-rdoc"
     - :sources => ["http://gems.rubyforge.org", "http://gems.github.com"]
  - REMOTE SOURCES:
     - http://gems.rubyforge.org
     - http://gems.github.com

И я использую Rails 3.0.0.beta, но я не думаю, что это связано с чем-то в этом случае.

Ответы [ 3 ]

2 голосов
/ 07 марта 2010

Предположительно, ваше приложение требует, чтобы вы вошли в систему для просмотра новой страницы книги.

Если это так, то «Быть ​​вошедшим» является предварительным условием для этого теста, поэтому должно быть в вашем Givens.

Итак, запустите тест с учетом того, что я вошел в систему, и используйте код для входа в систему, чтобы определить current_user

0 голосов
/ 16 марта 2010

Не создавать переменную экземпляра

Войти используя что-то вроде http://www.francisfish.com/debugging_cucumber_scripts_cucumber_and_devise_authenticati.htm

(прокрутите вниз до части о плагине devise)

Этот пример кода предназначен для разработки, но все, что вам нужно сделать, это заполнить правильные поля на странице входа в систему.

Это заставляет вас использовать GUI и быть клиентом приложения.

0 голосов
/ 06 марта 2010

current_user определяется только в контексте вашего контроллера. В вашей спецификации огурца у вас есть только внешние данные.

Хороший тест на огурец - нажмите на кнопку, а не переходите непосредственно по URL. Так что вам действительно нужно знать, каков этот URL или куда вы можете нажать, чтобы перейти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...