Я не уверен, относится ли это к Rspec 2, но в соответствии с документами Authlogic вы должны поместить это в метод before
или в spec_helper
:
include Authlogic::TestCase
activate_authlogic
И затем вы можете создавать пользовательские сессии, как если бы вы работали вне тестовой среды.
FWIW Я отказался от насмешек / заглушек в примерах Authlogic и сделал @user = Factory.create(:user)
, которые затем вошли в систему с UserSession.create (@user).
EDIT
Вот попытка, используя приведенный вами пример. Я думаю, проблема в том, что объект в assigns
отличается от объекта, с которым вы подходите.
describe "Authenticated examples" do
before(:each) do
# assuming you put include Authlogic::TestCase in spec_helper
activate_authlogic
@user = Factory.create(:valid_user)
UserSession.create(@user)
end
describe "GET edit" do
it "assigns the requested user as @user" do
# add a MyModel.stub!(:find) here if the edit action needs it
get :id => 1 # pass in an ID so the controller doesn't complain
assigns(:user).should == @user
end
end