所以我通过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
答案 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
需要更多的认知开销。