Как сохранить контекст при обработке ошибок с помощью onErrorResume()? ⇐ JAVA
-
Anonymous
Как сохранить контекст при обработке ошибок с помощью onErrorResume()?
В нынешнем виде этот тест пройден:
import org.junit.jupiter.api.Test; импортировать реактор.core.publisher.Mono; импортировать реактор.test.StepVerifier; импортировать реактор.util.context.Context; общественный класс ReactorContextTest { @Тест недействительный тест () { Строковый ключ = "какой-то ключ"; Строковое значение = "некоторое значение"; Mono mono = Mono.just(значение) .flatMap(v -> Mono.empty().contextWrite(Context.of(key, v))) // .onErrorResume(Exception.class, t -> { // System.out.println("Сработала onErrorResume()..."); // возвращаем Mono.empty(); // }) ; StepVerifier.create(моно) .expectAccessibleContext() .contains(ключ, значение) .затем() .verifyComplete(); } } но как только вы раскомментируете эти несколько строк кода и запустите его еще раз, вы заметите две вещи:
[*]
Журнал никогда не печатается
[*]
Тест не пройден
java.lang.AssertionError: Ожидаемое значение - некоторое значение для ключа - некоторый ключ, ключ отсутствует Контекст: Context0{} Снято: onErrorResume. Вот виновник:
// Моно public Final Mono onErrorResume(Function
В нынешнем виде этот тест пройден:
import org.junit.jupiter.api.Test; импортировать реактор.core.publisher.Mono; импортировать реактор.test.StepVerifier; импортировать реактор.util.context.Context; общественный класс ReactorContextTest { @Тест недействительный тест () { Строковый ключ = "какой-то ключ"; Строковое значение = "некоторое значение"; Mono mono = Mono.just(значение) .flatMap(v -> Mono.empty().contextWrite(Context.of(key, v))) // .onErrorResume(Exception.class, t -> { // System.out.println("Сработала onErrorResume()..."); // возвращаем Mono.empty(); // }) ; StepVerifier.create(моно) .expectAccessibleContext() .contains(ключ, значение) .затем() .verifyComplete(); } } но как только вы раскомментируете эти несколько строк кода и запустите его еще раз, вы заметите две вещи:
[*]
Журнал никогда не печатается
[*]
Тест не пройден
java.lang.AssertionError: Ожидаемое значение - некоторое значение для ключа - некоторый ключ, ключ отсутствует Контекст: Context0{} Снято: onErrorResume. Вот виновник:
// Моно public Final Mono onErrorResume(Function
Мобильная версия