use*_*256 5 java junit java-stream
说我有三个对象,我将它们保存到数据库并将db生成的ID设置为其中。我不知道从方法返回的对象的顺序saveToDb
。但是我想通过junit测试那些生成的ID是否存在。我该如何在视频流中做到这一点?我想做这样的事情:
List<MyObject> myObjects = getObjects();
numRecords = saveToDb(myObjects); // numRecords=3
List<Integer> intArray = Arrays.asList(1, 2, 3);
intArray.stream()
.forEach(it -> myObjects.stream()
.filter(it2 -> it2.getId().equals(it))
.????
Run Code Online (Sandbox Code Playgroud)
但是我不确定在assertEquals()
这样的声明中我会去哪里。还是我的方法全错了?我知道我可以使用简单的for循环,但是我喜欢流的优雅。此外,如果我有3个以上的myObject,是否可以动态创建intArray?
看来(如果我理解正确的话),这样的事情怎么样:
boolean result = Arrays.asList(1, 2, 3).stream()
.allMatch(i -> objects
.stream()
.map(MyObject::getId)
.filter(j -> j == i).findAny().isPresent());
Assert.assertTrue(result);
Run Code Online (Sandbox Code Playgroud)