Capture values

There are times when we are unable to assert values directly. In such test scenarios, we usually capture the invoked values and then assert them separately. Reactor provides a recordWith API to capture values generated by the publisher under test. This method takes a Supplier function, which is invoked in order to instantiate a Collection for storing values. The recorder collection can then be asserted using the expectRecordedMatches method:

@Test    public void testRecordWith() throws Exception {        Flux<Long> fibonacciGenerator = Flux.generate(() -> Tuples.<Long,                Long>of(0L, 1L), (state, sink) -> {          //   Removed for Brevity     });        StepVerifier.create(fibonacciGenerator, Long.MAX_VALUE)                .recordWith(() -> new ArrayList<>()) .thenConsumeWhile(x ...

Get Hands-On Reactive Programming with Reactor now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.