2016-08-21 4 views
0

Lorsque j'utilise ActiveSupport::TestCase des tests qui ont échoué montre un message comme celui-ci:Comment afficher le numéro de BigDecimal comme lisible par l'homme lors de l'utilisation 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)> 

Je veux montrer la valeur 0.94 au lieu de <BigDecimal:7fb947c749a0,'0.94E0',9(18)>. Dans les rails cosole ou dans pry J'utilise awesome_print.

Existe-t-il un moyen d'activer awesome_print pour le résultat du test? Je n'insiste pas pour utiliser awesome_print, s'il y a une autre façon de montrer le nombre plus lisible, je vais l'utiliser avec bonheur.

Répondre

0

Vous pouvez ajouter un message à l'instruction assert

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

En outre, vous n'avez pas demandé, mais si vous essayez de comparer deux nombres décimaux, vous voulez probablement utiliser assert_in_delta pour voir que les chiffres sont proches plutôt que précis.