gpt4 book ai didi

unit-testing - 为什么是 assertEquals(a, b) 而不是 assert(a == b)?

转载 作者:行者123 更新时间:2023-12-03 09:24:29 25 4
gpt4 key购买 nike

为什么大多数(全部?)单元测试框架都有大型 API 和单独的函数来指定不同类型的 bool 条件(例如 assertEqualsassertNotEqual 等)而不是使用单个 assert具有所需 bool 表达式的函数(或语言构造)?

最佳答案

一个简单的assert只会扔AssertionError声明断言的条件评估为假:

assert "foo".equals("boo")

java.lang.AssertionError: assertion failed

(更何况 assert string1 == string2由于引用比较不正确)

通过两者 ab库可以将它们包含在错误消息中。这里: FEST assertions :
assertThat("foo").isEqualTo("boo");

//throws:
Exception in thread "main" org.junit.ComparisonFailure:
expected:<'[b]oo'> but was:<'[f]oo'>

请注意,某些语言更强大:

在 Groovy 中(示例来自: Groovy 1.7 Power Assert ):
a = 10
b = 9

assert 91 == a * b

产量:
Assertion failed: 

assert 91 == a * b
| | | |
| 10| 9
| 90
false

at ConsoleScript2.run(ConsoleScript2:4)

在 Scala ( ScalaTest ) 中有一个特殊的 ===运算符(operator):
assert(1 === 2)

yield 1 did not equal 2 .

关于unit-testing - 为什么是 assertEquals(a, b) 而不是 assert(a == b)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11390187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com