De acuerdo con this del wiki previsto, debería ser capaz de utilizar un método de ayuda de login_user en mis pruebas de controlador. En consecuencia, he lo siguiente dentro de la guía de especificaciones:rspec & inventar ayudantes de prueba
#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
...
y
#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
embargo llamando al ayudante no funciona:
#requests/some_spec.rb
require 'spec_helper'
describe "GET /guides/edit" do
login_user
end
Puede alguien punto hacia donde voy incorrecto. El conjunto de pruebas funciona a partir de esto. Obtengo un mensaje de variable o método local indefinido, así que supongo que el módulo no se incluye.
Rails 3.0.7 rspec 2.6.0 legado 1.3.4
¿Eso es un error en su some_spec.rb? 'log_in' /' login_user' – Dogbert
Vaya, lo siento. Fijo. – mark
¿Cuál es la traza inversa que obtienes? –