據this從色器件維基我應該能夠在我的控制器的測試使用login_user helper方法。因此我已在規範目錄中的以下內容:rspec的設計與測試助手
#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
...
和
#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
但是調用助手不起作用:
#requests/some_spec.rb
require 'spec_helper'
describe "GET /guides/edit" do
login_user
end
可有人朝我要去的地方點錯誤。測試套件從此起作用。我得到一個未定義的局部變量或方法消息,所以我猜這個模塊沒有被包含。
的Rails 3.0.7 rspec的2.6.0 色器件1.3.4
這是你的some_spec.rb中的拼寫錯誤嗎? 'log_in' /'login_user' – Dogbert
哎呀,對不起。固定。 – mark
你得到的回溯是什麼? –