我对单元测试有点新,我发现自己总是使用AssertTrue的语言等效版本,而不是学习可用的许多不同类型的其他Assert语句。
如果它们都归结为真或假,如果我AssertTrue(a == b)
代替AssertEquals(a,b)
,我是否遗漏任何非常重要的内容?如果测试失败,它是否只是帮助提供更清晰的调试消息?
答案 0 :(得分:1)
如果测试失败,它只是帮助提供更清晰的调试消息
是的,但这是一个非常重要的功能。我更喜欢看到预期' foo'成为'' 比预期的错误为真。
它还使代码更具可读性,并且在许多情况下更易于编写。我不知道phpunit的细节,但是看到像
这样的东西我更清楚了assertThat(someCollection).containsExactly("a", "b", "c")
比看到3个断言测试元素0是" a",元素1是" b"元素2是" c"。