1
我已經設計安裝和設置的RSpec準備CURRENT_USER使用controller_macros如何補充點兒色器件
我ControllerMacro:
def login_user
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
@current_user = Fabricate(:user)
@current_user.confirm! # or set a confirmed_at inside the factory. Only necessary if you are using the confirmable module
sign_in @current_user
end
end
和我payment_controller_spec.rb
describe PaymentController do
describe "payment" do
login_user
before(:each) do
@current_user.payments.create(method: "bank", amount: "123")
end
it 'should assign amount_to_pay' do
get :bank_payment, { id: @current_user.to_param}
expect(assigns[:amount_to_pay]).to eq "123"
end
end
end
錯誤消息
NoMethodError: undefined method `payments' for nil:NilClass
如何在我的規格內訪問@current_user
並添加一些依賴關係?
謝謝
如果我把'''stub_accessibility(user)''放到before塊中,我得到'''undefined方法'''(我重新啓動了spork服務器)stub_accessibility – Jan
你需要定義'stub_accessiblity'方法你自己在你包含在你的'spec_helper.rb'文件中的模塊中;) –
我已經實現了這個(在devise wiki中描述)並且也成功地使用了login_user方法。 – Jan