ruby-on-rails – “记住我”复选框的失败集成测试

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – “记住我”复选框的失败集成测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在关注railstutorial.org第3版,我目前正致力于第8章:登录,注销.

我在代码清单8.51中找到了一些荒谬的东西(登录时没有记住测试),这段代码

assert_nil cookies['remember_token']

当我执行:rake test时,它返回RED并出现以下错误

FAIL["test_login_without_remembering",UsersLoginTest,1.268578948]
 test_login_without_remembering#UsersLoginTest (1.27s)
    Expected "" to be nil.
    test/integration/users_login_test.rb:46:in `block in      <class:UsersLoginTest>'

但是,当我更改为此代码时:

assert_not_nil cookies['remember_token']

我执行:rake test,它返回GREEN并且登录 – 注销过程正常工作.

如果有人能解释这个案子?

谢谢.

解决方法

我犯了这个错误……

TL; DR;从sessions_controller.rb中删除记住用户

看看Listing 8.34.
你应该找到
记住用户
在session_controller.rb中.

现在参考同一个文件,看看Listing 8.49.
作者对这一行做了大量的介绍,但如果你只是粘贴它而不删除记住用户调用,那么令牌仍会生成.

所以,当粘贴在这一行:

params [:session] [:remember_me] ==’1’?记住(用户):忘记(用户)

确保它正在替换呼叫以记住用户.

猜你在找的Ruby相关文章