ruby-on-rails - 如何在集成测试中访问虚拟 remember_token 属性?

标签 ruby-on-rails integration-testing

我正在编写第 8 章的 michal hart 的 Ruby on rails 教程
Click here for details ,我在练习8.6卡住了,作者在集成测试中介绍了一种访问虚拟remember_token属性的方法,他给我们留下了一些工作,

assert_equal assigns(:user).FILL_IN, FILL_IN

我应该用“FILL_IN”占位符替换正确的代码。我只是想不出正确的那个。我试过了
assert_equal assigns(:user).cookies, remember_token

应用程序/ Controller /sessions_controller.rb
def create
     @user = User.find_by(email: params[:session][:email].downcase)
    if @user && @user.authenticate(params[:session][:password])
      log_in @user
      params[:session][:remember_me] == '1' ? remember(@user) : forget(@user)
      redirect_to @user

但是没用,
错误:
 "test_login_with_remembering", UsersLoginTest, 0.590876]
 test_login_with_remembering#UsersLoginTest (0.59s)
NoMethodError:         NoMethodError: undefined method `cookies' for #<User:0x007f964f1a91d0>

我知道这很简单,我实际上做了一些研究,似乎没有人问过同样的问题,因为教程很新。
请理解我只是一个初学者,如果你能帮助我解决这个问题,我将不胜感激。

最佳答案

我通过购买迈克尔的书得到了答案。答案包含在解决方案手册中。我认为值得分享,因为我已经提出了这个问题

assert_equal assigns(:user).remember_token, cookies['remember_token']

毫无值(value),阅读 ruby​​ 语言对理解这段代码有很大帮助,我的问题是在我开始研究 Rails 之前我没有做太多关于 Ruby 的阅读,但这不是一个大问题,我只是继续Ruby入门是为了更深入地了解Ruby语言!
祝你好运

关于ruby-on-rails - 如何在集成测试中访问虚拟 remember_token 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27393693/

相关文章:

ruby-on-rails - zsh:权限被拒绝:bin/rake

Android 和 iOS 测试工具/框架

ruby-on-rails - 本地开发环境限制Elasticsearch内存使用的最佳实践

ruby-on-rails - OmniAuth 是否为 Facebook Graph API 提供简单的 Hook ?

ruby-on-rails - Rails 捆绑安装失败

java - 如何在组件初始化之前在Spring Boot测试中加载h2数据

java - Maven:使用外部库进行集成测试

java - 使用 Arquillian TestRunner TestNG 按顺序执行测试

Spring Boot 测试 : exception in REST controller

ruby-on-rails - 最佳实践 - RoR 4 Heroku - Cron 每小时从外部 API 填充数据库