gpt4 book ai didi

android - 如何使用 SavedStateHandle 为 Android ViewModel 编写单元测试

转载 作者:行者123 更新时间:2023-12-05 05:37:57 29 4
gpt4 key购买 nike

在 Android ViewModel 中,如何编写单元测试来验证 savedStateHandle 是否正确保存和恢复值?

class SampleViewModel(
private val savedStateHandle: SavedStateHandle
) : ViewModel() {
var foo: Int = 0 // In the actual code, foo is a non-parcelable type

init {
savedStateHandle.get<Int>("foo")?.let {
foo = it
}

savedStateHandle.setSavedStateProvider("foo") {
bundleOf("foo" to foo)
}
}
}

最佳答案

如果您的问题是如何创建 SavedStateHandle,您可以像这样在单元测试中创建并传递它:

val savedStateHandle = SavedStateHandle()
// or actually pass data with:
// SavedStateHandle(mapOf("foo" to 0))

val viewModel = SampleViewModel(
savedStateHandle = savedStateHandle
)

然后,您可以通过调用简单地检查该值是否已设置

assert(savedStateHandle.get<Int>("foo") == 0)

关于android - 如何使用 SavedStateHandle 为 Android ViewModel 编写单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73018589/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com