输入:

带有MyElement的

  • 集合,不带有的equals方法。
  • 一个org.hamcrest.TypeSafeMatcher实现,它按某个字段匹配元素。

  • 目的是使以下语句可编译:
    Collection<MyElement> elements = ...
    Collection<TypeSafeMatchert> matchers = ...
    assertThat(elements, Matchers.contains(matchers); //<error here
    

    在这里有什么用?它要我输入Matcher<? super java.util.List<MyElement>>,并告诉我我确实通过了Matcher<java.lang.Iterable<? super java.util.List<MyElement>>>。那么如何在这里通过Matcher Collection?

    关于将集合与hamcrest进行比较,有一个question,但是没有传递Matchers集合的示例,而不是元素。

    最佳答案

    除了定义CollectionTypeSafeMatchers之外,您还需要定义以下内容:

        List<Matcher<? super MyElement>> matchers = ...;
    

    这样,Hamcrest将知道您想要什么。

    10-06 13:42