Я недавно переключился, начал использовать rspec-rails (2.6.1) с моим приложением Rails (3.0.8).Я привык к Test :: Unit, и я не могу заставить фильтр работать для моих методов тестирования.Мне нравится, чтобы все было как можно более сухим, поэтому я хотел бы настроить фильтр, который я могу вызывать для любого метода тестирования, который будет входить в систему как пользователь Authlogic до вызова метода теста.Я попытался выполнить это с помощью RSpec-фильтра в spec_helper.rb:
config.before(:each, :login_as_admin => true) do
post "/user_sessions/create", :user_session => {:username => "admin", :password => "admin"}
end
Затем я использую его в соответствующем методе тестирования (в данном случае spec / controllers / 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
Однако я получаю эту ошибку при запуске rspec spec :
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.
Blech.Могу ли я отправить только один HTTP-запрос на тест?Я также попытался заглушить мой метод authenticate_admin (внутри блока config.before), но безуспешно.