我正在测试一种方法,看它是否返回正确的字符串。这个字符串由很多行组成,它们的顺序可能会改变,因此通常会给出 2 种可能的组合。该顺序对我的申请并不重要。
但是,因为行的顺序可能会改变,只写一个Assert语句是行不通的,因为有时它会通过测试,有时它会失败。
那么,是否可以编写一个测试,将实际字符串值与 2 个或更多预期字符串值进行断言,并查看它是否等于其中任何一个?
原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
使用 Hamcrest
CoreMatcher
(包含在 JUnit 4.4 及更高版本中)和assertThat()
: