认证系统与Cucumber测试入门
在实现应用的认证系统时,注销功能是重要的一环。在会话帮助模块中,我们可以使用 cookies 的 delete 方法来移除会话中的记住令牌( remember token ),以完成注销操作。以下是会话帮助模块中 sign_out 方法的代码:
# app/helpers/sessions_helper.rb
module SessionsHelper
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
def sign_out
self.current_user = nil
cookies.delete(:remember_token)
end
end
完成上述代码后,注册、登录和注销的功能就完整了,测试套件应该可以通过:
$ bundle exec rspec spec/
需要注意的是,当前的测试套件虽然覆盖了大部分认证机制,但并非全部。例如,我们没有测试“记住我”的cookie能持续多久,或者它是否真的被设置了。直接测试cookie值往往不太可靠,因为它们依赖的实现细节可能会随着Rails版本的更新而改变,从而导致测试失败,尽管应用代码本身仍然可以正常工
超级会员免费看
订阅专栏 解锁全文
9924

被折叠的 条评论
为什么被折叠?



