Android 由于对象引用,Mock verifySequence不工作

Android 由于对象引用,Mock verifySequence不工作,android,unit-testing,testing,mockk,sealed-class,Android,Unit Testing,Testing,Mockk,Sealed Class,对我来说,使用状态类(密封类)来控制屏幕的状态(比如成功、错误和加载)是很常见的。所以我会有这样的想法: sealed class State { object Loading: State() object Success : State() object Error : State() } 现在,在某个类上,我有一个具有此值的属性,在某个流中,我将其设置为Loading,然后设置为Error。我可以使用以下方法检查此属性设置的序列是否为该序列:verifySeque

对我来说,使用状态类(密封类)来控制屏幕的状态(比如成功、错误和加载)是很常见的。所以我会有这样的想法:

sealed class State {
    object Loading: State()
    object Success : State()
    object Error : State()
}
现在,在某个类上,我有一个具有此值的属性,在某个流中,我将其设置为Loading,然后设置为Error。我可以使用以下方法检查此属性设置的序列是否为该序列:
verifySequence

verifySequence {
    stateObserver.onChanged(State.Loading)
    stateObserver.onChanged(State.Success)
}
现在让我们假设我的密封类中有类,而不是对象,并且有点复杂,如下所示:

sealed class NetworkResult<T> {
    class Success<T>(val data: T) : NetworkResult<T>()
    class Error<T>(val message: String) : NetworkResult<T>()
    class Loading<T> : NetworkResult<T>()
}

知道如何检查此序列吗?

尝试使用数据类而不是简单类:

sealed class NetworkResult<T> {
    data class Success<T>(val data: T?) : NetworkResult<T>()
    data class Error<T>(val message: String?) : NetworkResult<T>()
    data class Loading<T>(val nothing: Nothing? = null) : NetworkResult<T>()
}
密封类网络结果{
数据类成功(val数据:T?):NetworkResult()
数据类错误(val消息:字符串?):NetworkResult()
数据类加载(val nothing:nothing?=null):NetworkResult()
}
sealed class NetworkResult<T> {
    data class Success<T>(val data: T?) : NetworkResult<T>()
    data class Error<T>(val message: String?) : NetworkResult<T>()
    data class Loading<T>(val nothing: Nothing? = null) : NetworkResult<T>()
}