gpt4 book ai didi

ruby-on-rails - 如何在 Rails 3 中编写 rspec 测试以测试用户在创建后是否使用 authlogic 签名?

转载 作者:行者123 更新时间:2023-12-01 12:38:38 27 4
gpt4 key购买 nike

我正在将我的应用程序从自定义身份验证机制移植到 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

在哪里登录?在 app/helpers/user_sessions_helper.rb 中定义并包含在应用程序 Controller 中:

# check for a signed in user. returns true if current_user is not nil.        
def signed_in?
!current_user.nil?
end

我期待这个测试通过但是 signed_in?正在返回假。有任何想法吗?我的猜测是我应该询问 UserSession 是否 :user 已登录,但我不确定 authlogic 如何允许我这样做。

任何提示、提示或技巧将不胜感激。

最佳答案

我已经设法编写了一个通过的测试 - 现在我只需要弄清楚测试中的逻辑是否正确:)

it "should sign the user in" do
post :create, :user => @attr
@user_session = UserSession.find
@user_session.user.should_not == nil
end

这至少会检查是否有 用户登录,但它并不表明刚刚创建的用户已登录。我认为它需要做更多的工作。

关于ruby-on-rails - 如何在 Rails 3 中编写 rspec 测试以测试用户在创建后是否使用 authlogic 签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5321109/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com