Big Decimalto_s
打印为科学记数法。
rspec 使用to_
s 表示错误消息。
如何对 rspec 进行猴子修补,以便使用更传统的格式为 BigDecimal 打印错误?
这与这个问题有关:Override BigDecimal to_s default in Ruby
但我不想全局覆盖BigDecimal.to_s
.
Big Decimalto_s
打印为科学记数法。
rspec 使用to_
s 表示错误消息。
如何对 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