AssertJ 检查列表包含 X 项但均为空
AssertJ check list contains X items but are all null
我查看了 AssertJ 示例 (https://github.com/joel-costigliola/assertj-examples/blob/master/assertions-examples/src/test/java/org/assertj/examples/IterableAssertionsExamples.java),但找不到以下示例:-
- 断言列表的大小为 X,例如
3
- 断言所有项目都是
null
例如
List<String> items= Arrays.asList(null, null, null);
assertThat(items).hasSize(3).containsOnlyNulls();
Note - containsOnlyNulls
doesn't exist but this is essentially what I'm trying to test for. Can this be achieved in AssertJ?
您可以使用
// need to cast to String
assertThat(items).hasSize(3).containsOnly((String) null);
或
assertThat(items).filteredOn(item -> item == null).hasSize(3);
- 编辑 -
containsOnlyNulls 断言已添加到 AssertJ 3.9.0+
示例:
// 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();
我查看了 AssertJ 示例 (https://github.com/joel-costigliola/assertj-examples/blob/master/assertions-examples/src/test/java/org/assertj/examples/IterableAssertionsExamples.java),但找不到以下示例:-
- 断言列表的大小为 X,例如
3
- 断言所有项目都是
null
例如
List<String> items= Arrays.asList(null, null, null);
assertThat(items).hasSize(3).containsOnlyNulls();
Note -
containsOnlyNulls
doesn't exist but this is essentially what I'm trying to test for. Can this be achieved in AssertJ?
您可以使用
// need to cast to String
assertThat(items).hasSize(3).containsOnly((String) null);
或
assertThat(items).filteredOn(item -> item == null).hasSize(3);
- 编辑 -
containsOnlyNulls 断言已添加到 AssertJ 3.9.0+
示例:
// 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();