3

此匹配器检查一组匹配器,如果它们都成功则成功。

签名内容如下:

public static <T> Matcher<T> allOf(Iterable<Matcher<? extends T>> matchers)

为什么这需要一个可迭代的
     Matcher<? extends T>

并不是
     Matcher<? super t>

如果它是正确的,请解释。

类型将从被匹配(测试)的对象中推断出来,所以我希望迭代器持有与被匹配对象或其任何超类兼容的匹配器。同样,允许可迭代对象保存仅与子类兼容的匹配器似乎是错误的。

4

1 回答 1

4

(回答自己的问题)

我的坏 - 不小心使用了旧版本。这在 2007年的 Hamcrest 1.2 中得到了修复。但是在 2012 年 12 月发布的 JUnit 4.11 之前,旧的“扩展”版本一直包含在 JUnit 中。

于 2012-05-25T16:08:47.147 回答