Как мне использовать StepVerifier Reactor, чтобы убедиться, что Mono пуст?

Я использую StepVerifier для проверки значений:

@Test
public void testStuff() {
    Thing thing = new Thing();
    Mono<Thing> result = Mono.just(thing);
    StepVerifier.create(result).consumeNextWith(r -> {
        assertEquals(thing, r);
    }).verifyComplete();
}

Сейчас я бы хотел проверить отсутствие элемента в Mono. Нравится:

@Test
public void testNoStuff() {
    Mono<Thing> result = Mono.empty();
    StepVerifier.create(result)... // what goes here?
}

Я хочу проверить, что Mono на самом деле пуст. Как я могу это сделать?


person Mark    schedule 18.07.2018    source источник


Ответы (2)


Просто используйте verifyComplete(). Если Mono испускает какие-либо данные, он не сможет выполнить пошаговую проверку, поскольку в этот момент не ожидает сигнала onNext.

person Simon Baslé    schedule 23.07.2018

здесь проверено, что onNext не вызывается

 StepVerifier.create(result).expectNextCount(0).verifyComplete()
person samibel    schedule 07.12.2020
comment
Пожалуйста, объясните разницу с другим, более старым ответом, за который проголосовали. Похоже, вы рекомендуете то же самое, просто без объяснения причин. - person Yunnosch; 08.12.2020