Я пытаюсь проверить перехват исключения (kotlin.Exception
), выданного Mono
, которое затем перехватывается, и выдается новое исключение (MyException
).
Сбой следующего фрагмента ...
class MyException : Exception("My Exception")
assertThrows<MyException> {
Mono.fromCallable { throw Exception() }
.onErrorMap { MyException() }
.subscribe()
}
... со следующей ошибкой:
org.opentest4j.AssertionFailedError: Unexpected exception type thrown ==>
Expected :<com.company.project.service.SomeServiceTest$foobar$MyException>
Actual :<reactor.core.Exceptions.ErrorCallbackNotImplemented>
однако следующие проходы
assertThrows<RuntimeException> {
Mono.fromCallable { throw Exception() }
.onErrorMap { RuntimeException() }
.subscribe()
}
и я не уверен почему. За исключением того, что я использую пользовательское исключение, я не вижу разницы.
Я также пытался использовать block()
, с похожими результатами:
class MyException : Exception("My Exception")
assertThrows<MyException> {
Mono.fromCallable { throw Exception() }
.onErrorMap { MyException() }
.block()
}
другое исключение:
org.opentest4j.AssertionFailedError: Unexpected exception type thrown ==>
Expected :<com.company.project.service.SomeServiceTest$foobar$MyException>
Actual :<reactor.core.Exceptions.ReactiveException>