gpt4 book ai didi

java - 在无序集合中使用断言

转载 作者:行者123 更新时间:2023-11-30 05:35:57 25 4
gpt4 key购买 nike

我正在插入 Collection<Event>在表格内,类似这样

Collection<Event> eventCollection = service.insert(events);

现在,我需要测试 Event位于eventCollection具有一定的属性。我不确定顺序,其中Event s 存储在 eventCollection 中。目前,这就是我进行断言的方式。

assertTrue(
Iterables.get(eventCollection, 0).getPojo.getField1()
.equals("Some Value") &&
Iterables.get(eventCollection, 0).getPojo.getField2()
.equals("Some Value") &&
Iterables.get(eventCollection, 0).getPojo.getField3()
.equals("Some Value") &&
Iterables.get(eventCollection, 1).getPojo.getField1()
.equals("Some Value") &&
eventCollection, 1).getPojo.getField2()
.equals("Some Value") &&
Iterables.get(eventCollection, 1).getPojo.getField3()
.equals("Some Value"))
);

我知道eventCollection中有两个元素,但我不确定它们的顺序。Iterables.get似乎工作正常,但我想知道是否有更简单/更短的方法来使用流 api 来做到这一点?

编辑:"Some Value"并不总是指 String .

最佳答案

为了最大程度地清晰起见,我建议将低级谓词封装到辅助方法中,并使用 Stream.allMatch进行检查。

辅助函数(假设放置在Context类中,确切位置并不重要):

public static boolean expectedValues(Event event) {
return event.getPojo().getField1().equals("Some Value") &&
event.getPojo().getField2().equals("Some Value") &&
event.getPojo().getField3().equals("Some Value");
}

实际检查,这确实更不言自明:

assertTrue(eventCollection.stream().allMatch(Context::expectedValues));

关于java - 在无序集合中使用断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56628947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com