【问题标题】:Rails Tutorial Failed 9.25 Test Expected "" to be nilRails 教程失败 9.25 测试预期“”为零
【发布时间】: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


【解决方案1】:

sessions_controller.rb 的教程建议可能需要改回原来的建议:

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

【讨论】:

    【解决方案2】:

    我自己对此很陌生,但不会...

    断言 cookie['remember_token'].blank?

    工作,因为它仍然显示 remember_token 已经消失,问题似乎是记住令牌现在是空白而不是

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多