java - 标准 Hamcrest 匹配器检查集合是否为空或 null?

标签 java junit hamcrest

是否有使用标准 Hamcrest 匹配器的以下断言语句的较短版本?

Collection<Element> collection = ...

assertThat(collection, is(anyOf(nullValue(Collection.class), 
     emptyCollectionOf(Element.class))));

我意识到有一种方法可以创建自定义匹配器,希望可能已经有一些东西可以解决这个问题而无需任何额外的代码更改。

最佳答案

没有开箱即用的解决方案,更糟糕的是,either() 由于 this 而无法使用漏洞。所以最短的方法是这样的:

assertThat(collection, anyOf(nullValue(), empty()));

关于java - 标准 Hamcrest 匹配器检查集合是否为空或 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48908968/

相关文章:

java - 关于安装eclipse插件的问题

java - 多态性和压倒一切的困惑

java - spring-webmvc 升级出现 NoSuchMethodError

java - 如何对 Stream.reduce 方法进行单元测试

java - 尝试组合 hamcrest 匹配器时出现编译错误

java - 通过 Hamcrest 断言集合中匹配元素的数量

java - 如何在 Eclipse 插件开发中使用编辑器打开 xml 文件?

Android Espresso : Test filtering is not supported for given version of JUnit. 请将 JUnit 版本升级到至少 4.6

python - 没有导入候选人的实例

java - 我无法理解同步工作的示例如何