Я думаю, что ваша проблема вызвана тем, что SomeUtil.user()
не выдает значение.
Почему я думаю, что это так: я попробовал простой пример для воспроизведения вашей проблемы:
@Test
void test() {
Mono<String> monoWithContent =
Mono.just("Content")
.map(element -> exceptionThrower());
// TEST 1
StepVerifier.create(monoWithContent)
.expectError()
.verify();
Mono<String> monoWithoutContent =
Mono.empty()
.map(element -> exceptionThrower());
// TEST 2
StepVerifier.create(monoWithoutContent)
.expectError()
.verify();
}
String exceptionThrower() {
throw new RuntimeException();
}
Результат:
TEST 1 - успешно пройден, поскольку значение передается из Mono
и сопоставляется с исключением (брошенный RuntimeException
exceptionThrower()
.
TEST 2 - завершается неудачей, потому что нет значения для выброса из Mono
, поэтому метод map
не вызывается и все выполнение завершаетсябез ошибки.
Итак, подведем итог: если из Publisher
не выводится содержимое, то операции преобразования не запускаются.