【发布时间】:2017-04-25 23:16:02
【问题描述】:
阅读 Michael Hartl Ruby on Rails 5 教程后,我在测试中遇到了一个我似乎无法弄清楚的错误。包含的屏幕截图显示了测试的调试输出。特别是它表明应该被删除的“remember_token”表现得很奇怪。如果我将调试代码放入发生它的忘记()函数中,它似乎被删除并且为零,但在集成测试中它似乎并没有完全删除。而是从零返回“”?测试而不是真/假。 user_id cookie 也有同样的问题,但是测试中从未正确创建的 cookie (例如 'blah')会正确响应 nil?与真实。有什么想法吗?
实际删除 :remember_token 的忘记方法
def forget(user)
user.forget
cookies.delete(:user_id)
cookies.delete(:remember_token)
end
如果屏幕截图不清楚,这里的测试失败了:
test "login without remembering" do
# Log in to set the cookie.
log_in_as(@user, remember_me: '1')
delete logout_path
# Log in again and verify that the cookie is deleted.
log_in_as(@user, remember_me: '0')
Rails::logger.debug "**************************************************"
Rails::logger.debug cookies['blah'].nil?
Rails::logger.debug cookies['remember_token'].nil?
Rails::logger.debug "**************************************************"
assert_nil cookies['remember_token']
end
这是日志文件中的输出:
Completed 302 Found in 2ms (ActiveRecord: 0.1ms)
**************************************************
true
**************************************************
这是测试结果中的错误信息:
FAIL["test_login_without_remembering", UsersLoginTest, 0.24238487900584005]
test_login_without_remembering#UsersLoginTest (0.24s)
Expected "" to be nil.
test/integration/users_login_test.rb:57:in `block in <class:UsersLoginTest>'
【问题讨论】:
-
请删除屏幕截图并发布您的代码。
-
代码的哪些部分?或者只是一般的所有代码?出于什么目的?我不确定屏幕截图没有传达什么?还是只是对 StackOverflow 帖子的普遍偏好?
-
截图中的代码我看不清楚。顺便说一句,请阅读stackoverflow.com/help/how-to-ask
-
我没有看到任何关于屏幕截图的内容,但我理解您的担忧,并发布了一些有问题的代码和结果。您还应该能够单击图像以将其展开并更清楚地看到它。
标签: ruby-on-rails ruby-on-rails-5 railstutorial.org