Что было бы хорошим способом сравнить два экземпляра Stream
в Java 8 и выяснить, имеют ли они одни и те же элементы, специально для целей модульного тестирования?
Теперь у меня есть:
@Test
void testSomething() {
Stream<Integer> expected;
Stream<Integer> thingUnderTest;
// (...)
Assert.assertArrayEquals(expected.toArray(), thingUnderTest.toArray());
}
или, альтернативно:
Assert.assertEquals(
expected.collect(Collectors.toList()),
thingUnderTest.collect(Collectors.toList()));
Но это означает, что я строю две коллекции и отбрасываю их. Это не проблема производительности, учитывая размер моих тестовых потоков, но мне интересно, существует ли канонический способ сравнения двух потоков.