Vla*_*lad 28 java junit java-8
比较Stream
Java 8中的两个实例并找出它们是否具有相同的元素,特别是出于单元测试的目的,有什么好方法?
我现在得到的是:
@Test
void testSomething() {
Stream<Integer> expected;
Stream<Integer> thingUnderTest;
// (...)
Assert.assertArrayEquals(expected.toArray(), thingUnderTest.toArray());
}
Run Code Online (Sandbox Code Playgroud)
或者:
Assert.assertEquals(
expected.collect(Collectors.toList()),
thingUnderTest.collect(Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)
但这意味着我正在构建两个集合并丢弃它们.考虑到我的测试流的大小,这不是性能问题,但我想知道是否有一种规范的方法来比较两个流.
Zho*_*gYu 25
static void assertStreamEquals(Stream<?> s1, Stream<?> s2)
{
Iterator<?> iter1 = s1.iterator(), iter2 = s2.iterator();
while(iter1.hasNext() && iter2.hasNext())
assertEquals(iter1.next(), iter2.next());
assert !iter1.hasNext() && !iter2.hasNext();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16205 次 |
最近记录: |