Так что для этой модели метод:
def tax_rate
tax_rate = 0.0
tax_rate += STATE_TAX if state_taxable? #STATE_TAX = 0.1
tax_rate += IMPORT_TAX if imported? #IMPORT_TAX = 0.05
tax_rate
end
Этот тест не пройден:
@item.update_attributes({:state_taxable => true,
:imported => true,
:price => 32.19})
assert_equal 0.15, @item.tax_rate
Я получаю эту ошибку:
<0.15> expected but was <0.15>.
Однако, этот тест пройдет:
@item.update_attributes({:state_taxable => true,
:imported => false,
:price => 14.99})
assert_equal 0.1, @item.tax_rate
Таким образом, я получаю ошибку, когда tax_rate равен 0,0 + 0,1 + 0,05, но не когда он равен 0,0 + 0,1 или 0,0 + 0,05. Обе 0,15 - это числа с плавающей точкой, поэтому я не вижу, что может быть причиной этого. Я слишком долго размышлял над этим, надеюсь, кто-то может указать, кто виноват. Заранее спасибо, ребята.