[英]MockK verifySequence not working because of object reference
我經常使用 state class(密封類)來控制我的屏幕的 state(比如說成功、錯誤和加載)。 所以我會有類似的東西:
sealed class State {
object Loading: State()
object Success : State()
object Error : State()
}
現在,在某些 class 上,我有一個具有此值的屬性,在某個流程中,我將其設置為 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>()
}
當我嘗試檢查順序時,我的測試失敗了,因為我使用的是 class 並且 MockK 通過參考做出斷言:
verifySequence {
stateObserver.onChanged(State.Loading())
stateObserver.onChanged(State.Success(list))
}
知道如何檢查這個序列嗎?
嘗試使用數據 class 而不是簡單的 class:
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>()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.