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

AssertJ检查列表包含X项,但都为空

国俊艾
2023-03-14
    null
List<String> items= Arrays.asList(null, null, null);
assertThat(items).hasSize(3).containsOnlyNulls();

注意-ContainsonLynulls不存在,但这实际上是我试图测试的内容。这可以在AssertJ中实现吗?

共有1个答案

闻人鸿飞
2023-03-14

您可以使用

// need to cast to String
assertThat(items).hasSize(3).containsOnly((String) null);

assertThat(items).filteredOn(item -> item == null).hasSize(3);

-编辑-

// assertion will pass
Iterable<String> items = Arrays.asList(null, null, null);
assertThat(items).containsOnlyNulls();

// assertion will fail because items2 contains a not null element
Iterable<String> items2 = Arrays.asList(null, null, "notNull");
assertThat(items2).containsOnlyNulls();

// assertion will fail since an empty iterable does not contain any elements and therefore no null ones.
Iterable<String> empty = new ArrayList<>();
assertThat(empty).containsOnlyNulls(); 
 类似资料:
  • 假设w、x、y和z都可以在列表a中。是否有一个快捷方式来检查它是否只包含x--例如。而不否定其他变量? w、x、y和z都是单个值(不是列表、元组等)。

  • 问题内容: 我有一个清单: 并要搜索包含字符串“ abc”和“ def”(以及其他错误的字符串)的项目。我怎样才能做到这一点? 这里几乎是同样的问题。 问题答案: 如果只需要测试,请将目标列表连接到字符串中,然后像这样测试每个元素: 从您的问题中,您可以通过以下方式将每个元素作为子字符串相对于另一个元素的子字符串进行测试: 它非常快(与其他方法之一相比): 从您的评论中,您可以找到不匹配的元素:

  • 我有一个选项列表,比如,我喜欢在它上面使用来断言几件事。 但我没有正确地做到这一点--我只找到一个可选的例子。 当然我可以自己做所有的检查

  • 问题内容: 我有两个列表,一个包含 相册,文件对的 列表,另一个仅包含有关一张照片的信息- 相册 (位置0)和 文件 (位置1) 如何查看 照片 列表是否在 照片 列表中?就像字符串一样。 相册 , 文件的 位置无关紧要,因为不会有任何 文件 等于 相册 。 问题答案: 同样喜欢字符串。不仅如此,也是 如此 。也适用于列表中的列表: 对列表的成员资格测试仅迭代列表,并对每个元素使用相等性测试以查看

  • 问题内容: 我正在尝试寻找一种简短的方法来查看列表中是否包含以下任何项,但是我的第一次尝试不起作用。除了编写函数来完成此任务之外,它还是检查多个项目之一是否在列表中的捷径。 问题答案: 空列表和空集都为False,因此您可以将值直接用作真值。

  • 我要求用户在控制台写四个数字,每个数字用连字符分隔。然后我将它们拆分,这将自动创建一个列表,并将其转换为int。但我不知道用户输入了多少数字。 如何检查if方法中这个列表包含多少元素?我需要这样的东西: 我不需要建议来重建我的代码,我需要知道我是否可以检查它或不。