关于Ruby assert_equal

时间:2011-12-23 03:36:19

标签: ruby testunit

所以我通过ruby koans教程学习Ruby。 在about_assert.rb脚本中,有关于assert_equal的注释, “一些主张平等的方式比其他方式更好”

这是代码

def test_a_better_way_of_asserting_equality
    expected_value = 2
    actual_value = 1 + 1

    assert_equal expected_value, actual_value
end

我的问题是,为什么   assert_equal expected_value, actual_value 优于  的 assert expected_value == actual_value

3 个答案:

答案 0 :(得分:6)

我自己使用Rspec,所以我不确定。

但我猜这与你在断言失败时得到的信息不同。 在assert_equal中,您应该得到类似“预期值为X,得到Y”的内容。 在另一种情况下,你会得到像“断言失败”这样的东西。

您可以快速测试并验证或反驳我的观点: - )

答案 1 :(得分:2)

因为默认情况下assert_equal提供了更好的解释信息。

这是来自Ruby 1.9.3 minitest / unit.rb的代码,所以你可以看到它也在使用==:

def assert_equal exp, act, msg = nil
  msg = message(msg, "") { diff exp, act }
  assert(exp == act, msg)
end

答案 2 :(得分:0)

除了已经说明的错误消息的原因。 assert_equal是自我解释的,assert foo == bar需要更多的认知开销。