Rails 3.2,RSpec 2.11。控制器宏不起作用,它似乎是從我所做的所有研究中正確寫入的。下面的代碼RSpec控制器宏不工作
/spec/support/controller_macros.rb
module ControllerMacros
def login_user
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
user = FactoryGirl.create(:user)
@current_user = user
sign_in user
end
end
end
/spec/spec_helper.rb
RSpec.configure do |config|
....
config.extend ControllerMacros, :type => :controller
end
/spec/controllers/companies_controller_spec.rb
require File.dirname(__FILE__) + '/../spec_helper'
describe CompaniesController, "index companies" do
context "for authenticated users" do
login_user
...
end
end
執行結果: 未定義的局部變量或方法'login_user'for#(NameE RROR)
我曾試過。相同的結果。 – justindfunk 2013-03-18 15:20:39
如果從宏中刪除before(:each),並將login_user放入規範中的before(:each)塊內,該怎麼辦? – omnikron 2013-03-18 15:22:10
你的描述區塊看起來有點奇怪,如果你刪除了''「索引公司」,它會起作用嗎? – omnikron 2013-03-18 15:24:01