Как выполнить модульное тестирование бесконечного Flux Stream, созданного в контроллере для синхронизации в Spring Web-Flux Unit Test для контроллера - PullRequest
0 голосов
/ 08 марта 2020

Есть ли способ проверить бесконечный поток потока, созданный в методе контроллера, используя VirualTimeScheduler / или любые другие средства для тестирования. e, g, у меня есть следующий код в RestController

final String[] names = new String []{"Shailesh", "Josh", "Loredana", "Eugen", "Roger"};
  final Random randomGenerator = new Random();
   IntStream streamOfRandomIndexes = IntStream.iterate(0, nextInt -> 
        randomGenerator.nextInt(names.length));
   Stream<String> fooNameStream = streamOfRandomIndexes.mapToObj(nextIndex -> names[nextIndex]);
     Flux<String> fooNames = Flux.fromStream(fooNameStream);
      Flux<Long> fooIds = Flux.interval(Duration.ofSeconds(1));
      return Flux.zip(fooNames,fooIds) .map(fooTuple -> new Foo(fooTuple.getT1(),fooTuple.getT2()));

Я не знаю, как проверить, что каждый элемент в свою очередь возвращается после 1 se c. Например, если я изменил задержку в контроллере, то при конкретном тестировании временной интервал должен дать сбой. Я много искал, но тщетно. У меня есть идея, что из-за блокировки getBody () я не могу использовать virtualTimescheduler. Но тогда как обойти это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...