小编Fus*_*ers的帖子

如何测试我的视图状态,它是使用组合多个流制成的状态流

我的视图模型

    val username = MutableStateFlow("")
    val password = MutableStateFlow("")

   val state = combineFlows(
        username,
        password,
    ) { username, password->
        LoginViewState(
            username = username,
            password = password,
        )
    }.stateIn(viewModelScope, WhileSubcribed(5000), initial = LoginViewState.Initial)

Run Code Online (Sandbox Code Playgroud)

我可以测试用户名变量是否更新或不使用涡轮机,如下所示:

    @Test
    fun testIfCredentialsUpdate() = runTest {
        viewModel.onUsernameChange("usr")
        viewModel.username.test {
            assertThat(awaitItem()).isEqualTo("usr")
            cancel()
        }
    }
Run Code Online (Sandbox Code Playgroud)

但我无法测试在我的用户名变量更新后,我的状态是否更新。测试失败,我的视图状态始终处于初始/默认阶段。如果有更好的方法来测试已合并的视图状态,请告诉我:)

android viewmodel kotlin kotlin-flow

5
推荐指数
0
解决办法
996
查看次数

标签 统计

android ×1

kotlin ×1

kotlin-flow ×1

viewmodel ×1