我最近開始使用rspec-rails(2.6.1)開始使用我的Rails(3.0.8)應用程序。我習慣於Test :: Unit,並且我似乎無法獲得適用於我的測試方法的篩選器。我喜歡儘可能保持DRY,所以我想建立一個過濾器,我可以調用任何測試方法,在調用測試方法之前,它將以Authlogic用戶身份登錄。RSpec Rails登錄過濾器
config.before(:each, :login_as_admin => true) do
post "/user_sessions/create", :user_session => {:username => "admin", :password => "admin"}
end
然後我用它在相應的測試方法(在這種情況下,規格/控制器/ admin_controller_spec.rb):
require 'spec_helper'
describe AdminController do
describe "GET index" do
it("gives a 200 response when visited as an admin", :login_as_admin => true) do
get :index
response.code.should eq("200")
end
end
end
但是我試圖通過在spec_helper.rb使用RSpec filter實現這一
Failures:
1) AdminController GET index gives a 200 response when visited as an admin
Failure/Error: Unable to find matching line from backtrace
RuntimeError:
@routes is nil: make sure you set it in your test's setup method.
布萊什:,當我運行rspec的規範我得到這個錯誤。我只能發送一個HTTP請求每個測試?我也嘗試刷出我的authenticate_admin方法(在config.before塊內),沒有任何運氣。
感謝您的信息,大衛。我很高興看到它已被報道。另外,感謝您在RSpec上的工作,它確實是一個方便的測試框架。 – dhulihan