ruby - BigDecimal 上的 rspec 错误是否有覆盖?

标签 ruby rspec rspec2 bigdecimal

Big Decimal 的 to_s 打印为科学记数法。

rspec 使用 to_ 作为错误消息。

如何对 rspec 进行猴子修补,以便它使用更传统的格式打印 BigDecimal 的错误?

这与这个问题有关:Override BigDecimal to_s default in Ruby

但我不想全局覆盖 BigDecimal.to_s

最佳答案

这行得通。在 rspec/support/big_decimal_inspect.rb 中创建文件

# Monkey patch BigDecimal#inspect
# Otherwises test errors print like:
# expected: #<BigDecimal:108482700,'0.11E3',9(27)>
#     got: #<BigDecimal:108468080,'0.12E3',9(27)>
# After get:
# expected: 110.0
#      got: 120.0
class BigDecimal
  def inspect
    to_s
  end
end

关于ruby - BigDecimal 上的 rspec 错误是否有覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15694449/

相关文章:

ruby - 在不下载完整文件的情况下,在 Ruby 中使用 Net::HTTP 将本地文件与校验和进行比较

ruby - (Ruby) 将字符串转换为一行代码?

ruby-on-rails - capybara/rspec - 有些东西是零......但它是什么?

ruby-on-rails - Rails 在上传时使用 stremio-ffmpeg gem 给电影加水印

ruby - gem_original_require' : no such file to load -- sinatra (LoadError)

ruby - 如何使用 RSpec 测试子进程的输出

ruby-on-rails - 使用 RSpec 和 Factory Girl 测试设计

ruby-on-rails - 使用 Rspec 2 和 Devise 测试 Rails 3 中的助手

ruby-on-rails - 如果快速规范通过,如何让守卫只运行慢速规范

ruby-on-rails - 尝试在 rSpec 中测试发送电子邮件,但 ActionMailer::Base.deliveries.empty?是真的