ArrayList<Boolean> 断言 Java 没有 hamcrest
ArrayList<Boolean> Assertion Java without hamcrest
此测试为我提供了来自 API 的所有状态,作为布尔值 True 或 False:
List<Boolean> allStatus = event.getResponse().getBody().jsonPath().getList("enabled");
具体有多少status没有概念,也没有固定的大小;它可以是 20 号或 1 号。
为了检查这个断言,我 运行 一个 for 循环并检查每个值:
assertNotNull(allStatus);
for (Boolean status : allStatus) {
assertEquals("FAILED Disable event status ", false, status);
}
我想知道有什么更好的方法来处理这种情况?
您可以使用 streams
介绍的 Java 8:
List<Boolean> allStatus = new ArrayList<>();
allStatus.stream().forEach((status) -> { assert status; });
这基本上与您提供的代码相同,但使用了更新的技术。您不能再快了,因为您 必须检查每个条目。
您可以使用 Java Streams 的 allMatch
assertNotNull(allStatus);
assertTrue(allStatus.stream().allMatch(b -> !b));
也许做一个断言?
boolean tmp = true;
for (Boolean status : allStatus) tmp = tmp&&status;
assert tmp;
我们也可以使用下面的断言:
List<Boolean> allStatus = event.getResponse().getBody().jsonPath().getList("enabled");
assertNotNull(allStatus);
assertEquals("FAILED Disable event status ", false, allStatus.contains(Boolean.valueOf(true)));
此测试为我提供了来自 API 的所有状态,作为布尔值 True 或 False:
List<Boolean> allStatus = event.getResponse().getBody().jsonPath().getList("enabled");
具体有多少status没有概念,也没有固定的大小;它可以是 20 号或 1 号。
为了检查这个断言,我 运行 一个 for 循环并检查每个值:
assertNotNull(allStatus);
for (Boolean status : allStatus) {
assertEquals("FAILED Disable event status ", false, status);
}
我想知道有什么更好的方法来处理这种情况?
您可以使用 streams
介绍的 Java 8:
List<Boolean> allStatus = new ArrayList<>();
allStatus.stream().forEach((status) -> { assert status; });
这基本上与您提供的代码相同,但使用了更新的技术。您不能再快了,因为您 必须检查每个条目。
您可以使用 Java Streams 的 allMatch
assertNotNull(allStatus);
assertTrue(allStatus.stream().allMatch(b -> !b));
也许做一个断言?
boolean tmp = true;
for (Boolean status : allStatus) tmp = tmp&&status;
assert tmp;
我们也可以使用下面的断言:
List<Boolean> allStatus = event.getResponse().getBody().jsonPath().getList("enabled");
assertNotNull(allStatus);
assertEquals("FAILED Disable event status ", false, allStatus.contains(Boolean.valueOf(true)));