- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以对于这个模型方法:
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.15s 都是 float ,所以我看不出是什么原因造成的。我花了太长时间考虑这个问题,希望有人能指出罪魁祸首是什么。提前谢谢大家。
最佳答案
float 不能精确表示;您需要做的是使用 assert_in_delta
来检查您是否在指定范围内。
类似 assert_in_delta 0.15, @item.tax_rate, 0.001
应该这样做:它会检查您是否在预期值的 0.001 范围内。
关于ruby-on-rails - assert_equal 表示 <0.15> 预期但为 <0.15>,但前提是该方法以某种方式计算 0.15,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3491385/
我正在创建一个可以表示为断言析取的测试;当第一个断言失败时,应该查看下一个。特别是,一个项目将等于两个事物之一。不知道是哪个。 我的代码看起来像这样。它不起作用,但它可能会让您了解我正在尝试做什么。
我正在研究 Ruby Koans目前正在使用 AboutHashes。到目前为止,assert_equals 遵循特定的格式样式:assert_equal space expected_value c
我认为问题与我的测试类继承有关。我在 SO 上检查了其他几个线程,它们似乎都在说从不同的东西中固有的。一些固有的类包括: Minitest::Unit::TestCase Test::Unit::Te
所以我正在通过 ruby koans 教程学习 Ruby。在 about_assert.rb 脚本中,有一条关于 assert_equal 的注释,“一些断言平等的方法比其他方法更好” 这是代码
我无法理解正在阅读的一本书中的一段代码。 代码如下: test "product price must be positive" do product = Product.new(:title =
我正在为具有不同来源的设置进行温度控制编程(在本例中只有一个): source = Source() sources_dict = { key: source } temp_control =
undefined method 'assert_equal' for # gem list bundler (1.3.5) diff-lcs (1.2.3) rspec (2.13.0) rspec
我正在阅读“Metaprogramming Ruby 2: Program Like the Ruby Pros”,我有点困惑。 通常,练习文件的末尾会有 require_relative '../t
我在使用 assert_equal 时在功能测试中遇到错误: 1) [31mFailure[0m: test_should_allow_dealer_to_extend_offer:21 exp
我真的很喜欢 Minitest,它很简单,但我不明白为什么我应该使用 assert_equal 而不是带有 == 运算符的 assert . 如果我查看 Implementation assert_e
我使用 Minitest,我想知道使用 200 或 304 page.status_code 是否有可能使我的测试成功。 不确定是否清楚,但我试过这个: assert_equal 200 || 304
我正在阅读 Rails 3 指南,并查看测试邮件程序部分。 但是,按照这些说明,我想知道它们是否有问题,并且做出的断言永远都不是真的。 这是文档中的相关部分: http://guides.rubyon
我正在使用 nosetest 工具断言 python unittest : ... from nose.tools import assert_equals, assert_almost_equal
我有一个名为 token wrapper 的模块,其中有一个方法 getToken : def Tokenwrapper.getToken uri = URI.parse("[URL REDACT
是否可以使用 assert_equal 来比较对象?我一直看到这个错误: AssertionError: != 相关代码片段: def test_parse_subject(): test
你能在 irb 中执行 assert_equal 吗?这是行不通的。 require 'test/unit' assert_equal(5,5) 最佳答案 当然可以! require 'test/un
我有以下代码: test "unique title" do product = Product.new(title: products(:ruby).title,
所以对于这个模型方法: def tax_rate tax_rate = 0.0 tax_rate += STATE_TAX if state_taxable? #STATE_TAX = 0.
我打开 irb 并输入: require 'test/unit' 但是当我使用 assert_equal 方法时,出现以下错误:NoMethodError: undefined method 'ass
我是一名优秀的程序员,十分优秀!