我正在将我的应用程序从自定义身份验证机制移植到authlogic,我无法确定如何测试新用户在创建后是否已登录。我的旧测试如下:
describe UsersController do
.
.
.
before(:each) do
activate_authlogic
@attr = { :username => "New User", :email => "user@example.com",
:password => "foobar", :password_confirmation => "foobar" }
end
.
.
.
it "should sign the user in" do
post :create, :user => @attr
controller.should be_signed_in
end
哪里签了_in?在app / helpers / user_sessions_helper.rb中定义,并包含在应用程序控制器中:
# check for a signed in user. returns true if current_user is not nil.
def signed_in?
!current_user.nil?
end
我期待这个测试通过但是signed_in?是假的。有任何想法吗?我的猜测是我应该问UserSession:用户是否已登录,但我不确定authlogic如何允许我这样做。
任何提示,提示或技巧都将不胜感激。
答案 0 :(得分:0)
我已经设法编写了一个通过的测试 - 现在我只需要弄清楚测试中的逻辑是否正确:)
it "should sign the user in" do
post :create, :user => @attr
@user_session = UserSession.find
@user_session.user.should_not == nil
end
这至少会检查是否已登录 用户,但它并未显示刚刚创建的用户已登录。我认为它需要更多工作。