sol*_*ell 4 testing unit-testing assert ruby-on-rails
所以对于这个模型方法:
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都是Floats,所以我看不出是什么造成了这种情况.我花了太长时间考虑这个,希望有人可以指出罪魁祸首是什么.先谢谢你们.
浮点数无法准确表示; 你需要做的是assert_in_delta用来检查你是否在指定的范围内.
喜欢的东西assert_in_delta 0.15, @item.tax_rate, 0.001应该这样做:它会检查你的内预期值0.001.
| 归档时间: | 
 | 
| 查看次数: | 910 次 | 
| 最近记录: |