【问题标题】:Actually, there were zero interactions with this mock. Error while testing ViewModels in Android实际上,与此模拟的交互为零。在 Android 中测试 ViewModel 时出错
【发布时间】:2021-06-12 20:54:43
【问题描述】:

尝试在 Android 中测试 ViewModel。 但我收到以下测试功能的以下错误。

需要但未调用: userRepoHelper.getAllUsers(); -> 在 com.packages.projects.view.utils.UsersApiTest$givenServerResponse200_whenFetch_shouldReturnSuccess$1.invokeSuspend(UserApiTest.kt:50) 实际上,与此模拟的交互为零。

特别是这条线导致了问题

verify(userRepoHelper).getAllUsers()
@Test
    fun givenServerResponse200_whenFetch_shouldReturnSuccess() {
        testCoroutineRule.runBlockingTest {
            val applicationMock = mock(Application::class.java)
            doReturn(emptyList<User>())
                .`when`(userRepoHelper)
                .getAllUsers()
            val viewModel = UsersViewModel(applicationMock)
            viewModel.appServiceList.observeForever(apiUsersObserver)
            verify(userRepoHelper).getAllUsers()
            verify(apiUsersObserver).onChanged(AppServiceResponse.success(emptyList()))
            viewModel.appServiceList.removeObserver(apiUsersObserver)
        }
    }

【问题讨论】:

    标签: android kotlin android-testing kotlin-android-extensions


    【解决方案1】:

    表示userRepoHelper.getAllUsers()没有在UserViewModel内部调用

    您确定在 UserViewmodel 构造函数中调用了 userRepoHelper.getAllUsers() 吗? 可以分享UserViewModel的代码吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多