当前位置: 首页 > 知识库问答 >
问题:

如何在Hamcrest中使用匹配器进行收集?

葛修永
2023-03-14

输入:

    null

目标是使以下语句可编译

Collection<MyElement> elements = ...
Collection<TypeSafeMatchert> matchers = ...
assertThat(elements, Matchers.contains(matchers); //<error here

这里有什么用?它想让我<编码>匹配器<?super java.util.list >并告诉我通过了 matcher >> 。那么如何在这里传递匹配器集合呢?

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

共有1个答案

卜阳
2023-03-14

您不需要定义typesafematchers集合,而是需要定义:

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

这样,hamcrest就知道您想要什么了。

 类似资料:
  • 简单的解决方案是通过像这样强制转换匹配器来删除泛型: 可能,但会生成编译器警告并感觉错误。 一个冗长的替代方案是:

  • 它看起来像hamcrest(尽管看起来,还有更多)。为什么我会选择使用(除了看起来类稍微小一点之外),为什么这两个类如此相似?

  • 我正在编写一些JUnit/Akruillian类测试,用Hibernate测试一些持久性方法。因此,我必须从数据库中获取许多Hibernate实体列表,并且为了更好地编写测试,我正在使用JUnit Hamcrest框架。在这一刻,我想使用组合匹配器,特别是其中之一。我知道我可以用方法替换它,但出于代码易读性的原因,我更喜欢组合匹配器。我不明白如何使用

  • 我试图使用JUnit/Hamcrest断言集合至少包含一个自定义逻辑断言为true的元素。我希望有像“anyOf”这样的匹配器,它采用lambda(或匿名类定义),在这里我可以定义自定义逻辑。我试过TypeSafeMatcher,但不知道该怎么处理它。 我不认为任何一个是我想要的,因为这似乎需要一个匹配者的名单。

  • 问题内容: 我已经在线阅读了文档和各种教程,但是我对regex在Java中的工作方式仍然感到困惑。我正在尝试做的是创建一个接受字符串类型参数的函数。然后,我想检查传递的字符串是否包含MDCLXVIivxlcdm以外的任何字符。因此,例如,字符串“ XMLVID​​”应返回false,而“ ABXMLVA”应返回true。 当我通过时,“ XMLIVD”,“ ABXMLVA”和“ XMLABCIX”

  • 我需要检查是否一个url是有效的和空值是可接受的以及。我是这个图书馆的新手,被这个错误难倒了。