“记住我”复选框的集成测试失败

8

我正在跟随railstutorial.org第三版,目前正在学习第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']

有没有人遇到过相同的问题并能解释一下这个案例?
谢谢。

代码在哪里测试,或者至少给我你正在做的练习的链接? - lcguida
@rockskull 我正在按照这个教程中的链接(https://www.railstutorial.org/book/log_in_log_out#sec-remember_tests)(8.4.6点)进行学习,并且我的代码和教程中的完全一样。但是,当我运行Listing 8.52中的测试时,它返回红色。 - rilutham
1个回答

22

我刚犯了个错误...

简短总结:从 sessions_controller.rb 中删除 remember user


请查看第8.34节,您应该会在sessions_controller.rb中找到remember user

现在,请再次参考同一文件第8.49节。 作者对这行代码很重视,但是如果你直接复制粘贴而不删除调用remember user的语句,令牌仍然会生成。

所以,在粘贴此行时:

params [: session] [: remember_me] == '1'?remember(user):forget(user)

请确保它替换了remember user的调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接