Lambda 如何在Spring Web中对控制器中创建的无限流量流进行单元测试控制器的流量单元测试
是否有任何方法可以使用VirtualTimeScheduler或任何其他方法测试控制器方法中创建的无限流量流。e、 我在RestController中有以下代码Lambda 如何在Spring Web中对控制器中创建的无限流量流进行单元测试控制器的流量单元测试,lambda,spring-webflux,spring-test,spring-reactive,Lambda,Spring Webflux,Spring Test,Spring Reactive,是否有任何方法可以使用VirtualTimeScheduler或任何其他方法测试控制器方法中创建的无限流量流。e、 我在RestController中有以下代码 final String[] names = new String []{"Shailesh", "Josh", "Loredana", "Eugen", "Roger"}; final Random randomGenerator = new Random(); IntStream streamOfRandomIndexes
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()));
final String[]names=新字符串[]{“Shailesh”、“Josh”、“Loredana”、“Eugen”、“Roger”};
最终随机生成器=新随机();
IntStream StreamOfRandomIndex=IntStream.iterate(0,nextInt->
randomGenerator.nextInt(names.length));
Stream-fooNameStream=streamofrandominexes.mapToObj(nextIndex->names[nextIndex]);
Flux fooNames=Flux.fromStream(fooNameStream);
通量fooIds=通量间隔(持续时间秒(1));
返回Flux.zip(fooNames,fooIds).map(fooTuple->newfoo(fooTuple.get1(),fooTuple.get2());
我不知道如何验证每个元素在1秒后依次返回。比如,如果我改变控制器的延迟,特定的测试时间间隔就会失败。我找了很多,但没有找到。
我有一些想法,因为getBody()是阻塞的,所以我不能使用virtualTimescheduler。但是,如何避免这种情况呢