Hamcrest 中的 stringContainsInAnyOrder 匹配器?

stringContainsInAnyOrder matcher in Hamcrest?

Hamcrest 中有一个 StringContainsInOrder 匹配器。

我如何断言一个字符串包含任意顺序的字符串集合?

这是不可能的,因为 Hamcrest 检查集合的方式。

它正在迭代它,看这里: https://code.google.com/p/hamcrest/source/browse/trunk/hamcrest-java/hamcrest-library/src/main/java/org/hamcrest/text/StringContainsInOrder.java?r=375

你可以:

1) 测试每个订单是否为短字符串(无效)

2) 排序和测试几次,相信它会覆盖 90% 以上的情况(不充分)

希望对您有所帮助。

您可以组合多个 contains 匹配器。

assertThat("this is a string", allOf(
  contains("string"),
  contains("this"),
  contains("a")));