ตามสิ่งนี้ จากวิกิประดิษฐ์ ฉันควรจะสามารถใช้เมธอดตัวช่วย login_user ในการทดสอบคอนโทรลเลอร์ของฉันได้ ดังนั้นฉันจึงมีสิ่งต่อไปนี้ภายในไดเร็กทอรี spec:
#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
log_in
/login_user
- person Dogbert   schedule 19.06.2011