#ruby-on-rails #ruby #bigdecimal #minitest
#ruby-on-rails #ruby #bigdecimal #минимальный тест
Вопрос:
Я использую awesome_print
, потому что хочу видеть Bigdecimal
числа, подобные 0.5
, вместо <BigDecimal:7fbfdafa54c8,'0.5E0',9(18)>
.
И я также хочу использовать ту же функцию для Minitest
результата.
Есть ли драгоценный камень для этого?
Я пробовал minitest-reporters, но, по-видимому, этот драгоценный камень не меняет Bigdecimal
внешний вид.
Комментарии:
1. в консоли rails?
2. Когда я запускаю тест с помощью
bundle exec rake test
.
Ответ №1:
Переопределить inspect
вкл BigDecimal
:
class BigDecimal
def inspect
self.ai
end
end
Для этого используется Kernel#ai
из awesome print (который, кстати, принимает, принимает удобный html: true
аргумент)
Причина, по которой я знаю, inspect
что Minitest вызывается, заключается в том, что то, что вы видите ( <BigDecimal:7fbfdafa54c8,'0.5E0',9(18)>
), совпадает с тем, что вы увидели бы, если бы запустили BigDecimal.new(num).inspect
Комментарии:
1. Где я могу переопределить метод, не затрагивая основной код проекта? Добавив
test_helper.rb
, я только что получилArgumentError
.2. вы правы, мой код был неправильным. Смотрите обновленный ответ. Переопределить
inspect
, неto_s