如何在使用ActiveSupport :: TestCase时将BigDecimal数字显示为人类可读

时间:2016-08-21 23:40:18

标签: ruby bigdecimal awesomeprint

当我使用失败的ActiveSupport::TestCase测试时会显示如下消息:

  2) Failure:
ArrayTest#test_example [/Users/ironsand/dev/my_project/test/core_ext/array_test.rb:6]:
--- expected
+++ actual
@@ -1 +1 @@
-#<BigDecimal:7fb947c749a0,'0.94E0',9(18)>
+#<BigDecimal:7fb947c7f5a8,'0.95E0',9(45)>

我想显示值0.94而不是<BigDecimal:7fb947c749a0,'0.94E0',9(18)>。 在rails cosole或pry我使用awesome_print

有没有办法激活awesome_print测试结果? 我不坚持使用awesome_print,如果有其他方法可以显示更可读的数字,我会乐意使用它。

1 个答案:

答案 0 :(得分:0)

您可以将消息添加到断言语句

message = "Expected #{expected_number.to_f} but actual number is #{actual_number.to_f}"
assert_equal expected_number, actual_number, message

另外,你没有问这个问题,但如果你想比较两个十进制数,你可能想用assert_in_delta看看这些数字是否接近而不是精确。