ruby - VoltRB rspec 测试方法无法将 Promise 转换为数组

标签 ruby rspec voltrb

我正在尝试对模型中的方法进行一些 rspec 单元测试。该方法返回一个 promise ,并在解析后返回该人的姓名。该方法不是问题,因为我知道它可以正常工作。这是我的测试代码:

it 'should return correct name' do
  report = Report.new(first_name: 'Testy', last_name: 'Testerson')
  report.save!
  expect(report.name).to eql('Testy Testerson')
end

当我测试它时,出现以下错误:

Failure/Error: expect(report.name).to eql('Testy Testerson')
TypeError:
  can't convert Promise to Array (Promise#to_ary gives Promise)

在调试时,我使用以下行来检查方法的返回值:

puts report.name.inspect

我得到了以下回复:

#<Promise(70319926955580): "Testy Testerson">

错误似乎正在发生,因为它根据预期值测试了 promise 。为什么我会收到此错误?

最佳答案

使用report.name.value可以修复此问题

关于ruby - VoltRB rspec 测试方法无法将 Promise 转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31169480/

相关文章:

mysql - Rails Query 选择最新记录的最佳方法

ruby - 如果有条件,Rails 4 模型 rspec

ruby - 如何在 ruby​​ volt 中添加按钮?

voltrb - View 调用中的controller_group是什么?

javascript - 在 Javascript 中使用 Ruby 变量(在应用程序 View 中)

ruby-on-rails - 无法使用 heroku 应用登录

ruby-on-rails - ruby on rails 在 Windows XP 中无法正常工作

ruby-on-rails - 如何从 Rspec 功能规范测试 Rails 日志记录?

ruby-on-rails - Rspec 测试 belongs_to 与 shoulda_matchers

html - 如何使用 "template" Controller 创建页面并在 VoltRb 中查看