Я в настоящее время нахожусь в теме Project Reactor, и я играю с processor.core.publisher.Mono и processor.test.StepVerifier .
Учитывая следующий код:
import org.junit.Test;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
public class ReactorTest {
@Test
public void test() {
Joe joe = new Joe();
Mono<Bob> result = joe.doStuff();
StepVerifier.create(result)
.expectError(RuntimeException.class)
.verifyThenAssertThat()
.hasOperatorErrorsMatching(errorList -> true); //true to be replaced by validations
}
}
И
public interface Bob {
}
И
import reactor.core.publisher.Mono;
public class Joe {
public Mono<Bob> doStuff() {
return Mono.error(new RuntimeException());
}
}
Я пытаюсь выполнить кучу проверок внутри лямбда-выражения .hasOperatorErrorsMatching (...)
.hasOperatorErrorsMatching (...) определяется как следующим
Iдействительно трудно определить тип класса errorList , посмотрев на .hasOperatorErrorsMatching (...) doc и выражение входного аргумента:
Predicate<Collection<Tuple2<Optional<Throwable>, Optional<?>>>> arg0
Я единственный, кому это выражение трудно читать?
С помощью отладчика Eclipse мне удалось определить тип класса errorList , который вы можете видеть как ConcurrentLinkedQueue , теперь у меня есть то, что мне нужно для проверки .hasOperatorErrorsMatching (...) .
Вопрос : Как вы определяете тип класса errorList при написании кода?Вы проверяете отладчик, как я, или у вас есть более простые способы определить его?