Boo*_*per 3 android kotlin rx-java2
我在 Kotlin 有以下密封类
sealed class Result<T, E> {
class Success<T, E>(val result: T) : Result<T, E>()
class Failure<T, E>(val failure: E) : Result<T, E>()
}
Run Code Online (Sandbox Code Playgroud)
create()并从函数返回 Result 实体
并将以下内容与 RxJava2 一起使用,
return Single.fromCallable { repository.create(details) }
.map {
return@map when(result) {
is Result.Success -> CreatedState.Success(result.result)
is Result.Failure -> CreatedState.Error(result.failure)
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,该功能似乎按预期工作。然而当我对此进行单元测试时,
val testSubscriber = underTest.create(newDetails).test()
Run Code Online (Sandbox Code Playgroud)
我得到一个并在异常列表中java.lang.IllegalStateException看到一个(当执行一个时),我无法理解它是如何发生的,因为我的何时检查是详尽的。或者我在那里错过了什么?kotlin.NoWhenBranchMatchedExceptionassertComplete()
蒂亚!
anj*_*osc 16
我知道这很旧,但可能会对某人有所帮助。我最近遇到了类似的问题,并意识到在测试中,我没有设置我的模拟框架来为被调用的端点提供有效的答案。因此,它返回 null,这不是由 when 块处理的,这会产生此错误。
| 归档时间: |
|
| 查看次数: |
4125 次 |
| 最近记录: |