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