ArrayList<;布尔值>;没有hamcrest的断言Java
此测试将API中的所有状态作为布尔值True或False提供:ArrayList<;布尔值>;没有hamcrest的断言Java,java,testing,automated-tests,assertions,rest-assured,Java,Testing,Automated Tests,Assertions,Rest Assured,此测试将API中的所有状态作为布尔值True或False提供: List<Boolean> allStatus = event.getResponse().getBody().jsonPath().getList("enabled"); 我想知道有什么更好的方法来处理这种情况 您可以使用Java 8引入的流: List<Boolean> allStatus = new ArrayList<>(); allStatus.stream().forEach((st
List<Boolean> allStatus = event.getResponse().getBody().jsonPath().getList("enabled");
我想知道有什么更好的方法来处理这种情况 您可以使用Java 8引入的
流
:
List<Boolean> allStatus = new ArrayList<>();
allStatus.stream().forEach((status) -> { assert status; });
List allStatus=new ArrayList();
allStatus.stream().forEach((status)->{assert status;});
这与您提供的代码基本相同,但采用了更新的技术。您无法使它更快,因为您必须检查每个条目。您可以使用Java Streams的
也许你只做一个断言
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)));
List allStatus=event.getResponse().getBody().jsonPath().getList(“已启用”);
assertNotNull(所有状态);
assertEquals(“禁用事件状态失败”,false,allStatus.contains(Boolean.valueOf(true));
你说的更好是什么意思?你在找短一点的吗?它不能再快了。你想在第一次失败后停止吗?可能是@JonahGraham的重复,这是另一个库。@4卡斯特:是的,但它确实回答了一个问题,即使用更好的库。实际上,你可能想恢复到b->!b
因为for等于
也会取消装箱。很抱歉,我想这将只检查一次状态是否存在。在allStatus中,它将是不同事件的所有状态
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)));