为什么我应该使用assert_equal,而不是在minitest中仅使用等于运算符进行断言?

问题描述 投票:0回答:3

我真的很喜欢 Minitest,它很简单,但我不明白为什么我应该使用

assert_equal
而不是
assert
==
运算符。

如果我查看实现

assert_equal
方法的作用与我使用等于运算符所说的完全相同。

为什么我需要中间这一步而不是直接使用它?

我还认为仅仅因为那里的

equal
就不会更具可读性,因为
==
非常自我解释。

ruby testing minitest
3个回答
3
投票

通常,当您喜欢清晰的失败消息时,您需要

assert_equal

当您写下

assert a == b
并且测试因任何原因失败时,该消息只会显示类似于
Assertion failed
的内容。 另一方面,如果您使用
assert_equal a, b
,失败将显示类似
Expected a to be equal to b
的消息,这会为您提供有关测试失败原因的更多详细信息。


2
投票

我认为这只是一个选择的问题,对我来说

assert_equal
看起来比使用
==

更具可读性
assert_equal expect, actual

0
投票

如果性能是一个问题,请注意

assert_equal
将其参数写入临时文件(通过调用 Minitest 的
diff
)以生成输入的差异。重复调用此函数(例如,在循环中)时,这可能会导致大量开销。

我发现这占给定测试套件运行时间的高达 50%。将

assert
==
结合使用可消除此成本。

© www.soinside.com 2019 - 2024. All rights reserved.