3

Big Decimalto_s打印为科学记数法。

rspec 使用to_s 表示错误消息。

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

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

但我不想全局覆盖BigDecimal.to_s.

4

1 回答 1

2

这行得通。在 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
于 2014-02-15T18:51:02.650 回答