自动化测试中断言
介绍
是的 另一篇试图违背传统思维的文章。 首先是静态方法很好 。 然后我告诉你辛格尔顿很好 。 现在,我要说的是可以在一个测试中为多个断言提供理由。 这也是一个简短的例子。
为什么只有一个?
首先,我将研究人们给出的每个测试仅使用一个断言的原因。 首先,它有助于维护。 测试仅应关注一种行为,以便您可以仅查看测试的名称或描述并知道出了什么问题。 与此相关的事实是,一旦将多个断言添加到测试中,就很难想出名称或描述。 最后,对于多个断言,如果其中多个断言失败,则只能找出其中一个断言,直到对其进行修复并再次运行测试。
一个倍数的情况
首先,我并不是在一个测试中简单地要求多个断言。 我建议我们不要害怕组合断言。 在Hamcrest库中,这是通过allOf()
和anyOf()
匹配器完成的; 在AssertJ中,这只是通过链接断言方法来完成的。 大多数断言/匹配器库都提供此功能,但是除了AssertJ用户之外,我认为它用处不大,并认为应该更多地使用它。
反