介绍
是的 另一篇试图违背传统思维的文章。 首先是静态方法很好 。 然后我告诉你辛格尔顿很好 。 现在,我要说的是可以在一个测试中为多个断言提供理由。 这也是一个简短的例子。
为什么只有一个?
首先,我将研究人们给出的每个测试仅使用一个断言的原因。 首先,它有助于维护。 测试仅应关注一种行为,以便您可以仅查看测试的名称或描述并知道出了什么问题。 与此相关的事实是,一旦将多个断言添加到测试中,就很难想出名称或描述。 最后,对于多个断言,如果其中多个断言失败,则只能找出其中一个断言,直到对其进行修复并再次运行测试。
一个倍数的情况
首先,我并不是在一个测试中简单地要求多个断言。 我建议我们不要害怕组合断言。 在Hamcrest库中,这是通过allOf()和anyOf()匹配器完成的; 在AssertJ中,这只是通过链接断言方法来完成的。 大多数断言/匹配器库都提供此功能,但是除了AssertJ用户之外,我认为它没有使用太多,并且认为应该更多地使用它。
反对多个断言的某些原因不适用于这种情况,而其他原因则完全取决于大小写。 关于仅一件事失败的最后一个问题现在仅部分成立。 是的,只有一个失败的测试(除非有一个测试框架将其分解为多个失败),但是消息中提到了多个失败,因此您可以一次查看所有失败。
不过,有一点他们可能会被过度使用。 幸运的是,据我所知,那里的每个断言组合系统对于组合中的每个断言都使用相同的“主题”,这有助于限制在必须执行其他完整断言之前可以在测试中完成多少个断言。
尽管如此,判断您是否良好的一个不错的指导原则是,测试的描述是否易于编写而无需包括“和”或“正确”。 第一个直接表明它正在测试多个事物,而第二个可以轻易地以“所有这些事情都必须正确”的名义掩盖 “和”。 有时第二个可以 ,但是如果不能将描述更改为好的内容,则可能不是。 另外,我不能保证仅仅因为描述成功了,所以可以使用组合断言。 尽力运用最佳判断。
奥托罗
因此,____是精品文章系列的结尾。 将来我可能会做更多的事情,但是我已经做了一段时间捍卫实用主义
下次,我将为Python创建一个优缺点列表; Python的阴和阳(这很有趣,因为Python徽标有点像阴阳)。
翻译自: https://www.javacodegeeks.com/2016/04/multiple-assertions-test-fine.html

2293

被折叠的 条评论
为什么被折叠?



