gpt4 book ai didi

ruby-on-rails - 设计 Lockable 在 rspec Controller 测试中不起作用

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

我们有一个自定义的 SessionsController,它继承自标准的 Devise::SessionsController 并为 User 模型启用了 lockable。这在手动测试时有效,但在我们的 Controller 测试中 failed_attempts不会增加超过 1。如果我减少 maximum_attempts尝试为 1 它将成功锁定测试中的帐户,但它仍然不会增加 failed_attempts超过1。

下面是我的测试示例。关于原因的任何想法 failed_attempts是不是增加超过一个 1 Controller 测试?

it{
bad_user = create(:user, password: 'passworD1')
3.times do
post :create, user: { email: bad_user.email, password: 'asdf' }
end

post :create, user: { email: bad_user.email, password: 'asdf' }
bad_user.reload
expect(bad_user.failed_attempts).to eq(4)
expect(bad_user.locked_at).not_to be_blank
}

最佳答案

Devise lockable module
有一个方法lock_access!锁定访问。这是测试另一种方法的一种方法 - 蛮力。根据每个设计初始值设定项的需要,在 new_user_session_path 输入正确的电子邮件和错误的密码,然后测试 new_user_unlock_path。

关于ruby-on-rails - 设计 Lockable 在 rspec Controller 测试中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30264978/

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