Zgodnie z this z devise wiki powinienem móc użyć metody helpera login_user w moich testach kontrolera. W związku z tym mam następujące ciągu spec katalogu:rspec i opracuj pomocników testowych
#spec_helper.rb
...
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.include Devise::TestHelpers, :type => :controller
config.extend ControllerMacros, :type => :controller
...
i
#support/controller_macros.rb
module ControllerMacros
def login_user
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
@user = Factory.create(:user)
sign_in @user
end
end
end
jednak wywołanie pomocnika nie działa:
#requests/some_spec.rb
require 'spec_helper'
describe "GET /guides/edit" do
login_user
end
ktoś może wskazać stronę, gdzie jadę źle. Zestaw testów działa na tej podstawie. Otrzymuję niezdefiniowaną lokalną zmienną lub komunikat o metodzie, więc domyślam się, że moduł nie jest uwzględniany.
Rails 3.0.7 rspec 2.6.0 Devise 1.3.4
Czy to jest literówka w Twoim pliku some_spec.rb? 'log_in' /' login_user' – Dogbert
Ups, przepraszam. Naprawiony. – mark
Jaki jest ślad śledzenia wstecznego? –