Проблема была с моим пониманием метода пропуска.
Я предположил, что пропуск пропускает конкретное число, однако пропускает количество элементов, представленных в качестве аргумента.
Это означает, что когда .skip(60)
вызывается в диапазоне 60 элементов, все они пропускаются, и появляется пустой поток.
отсюда ошибка
Ошибка конфигурации: для этого необходимо указать хотя бы один аргумент
@ParameterizedTest
Измените код на
@DisplayName("Test for multiples of 5")
@ParameterizedTest
@MethodSource("multiplesOf5Inputs")
public void multiplesOf5(int input){
String result = fizzBuzz.play(input);
Assertions.assertEquals("Buzz",result);
}
private static Stream<Integer> multiplesOf5Inputs(){
return IntStream.range(1,60)
// You need filter, not skip
.mapToObj(i->{return i*5;}).filter(i -> i%15!=0);
}
Резюме:
Эта ошибка возникает, когда количество параметров, предоставляемых источником, равно 0
.