小编Jos*_*cia的帖子

使用MockK coVerify时,未调用方法

以下测试失败。我手动测试了一下,确实有效。但我不确定为什么不调用该方法。我想这与我正在协程中测试一个方法有关,但是,我正在使用将TestRule调度程序设置为testDispatcher注入到演示者的方法。

我希望你能帮忙。欢迎对代码的任何部分提出任何评论。谢谢!


测试班

@RunWith(JUnit4::class)
class RegisterPresenterTest {

    @get:Rule
    var coroutinesTestRule = CoroutineTestRule()

    @MockK
    lateinit var viewMock: IRegisterView

    @MockK
    lateinit var service : UserManagementServiceImpl

    private lateinit var presenter: RegisterPresenter

    @Before
    fun setUp() {
        MockKAnnotations.init(this)
        presenter =
            RegisterPresenter(viewMock, coroutinesTestRule.testDispatcherProvider)
    }

    @Test
    fun `shouldCreateNewUser`() = coroutinesTestRule.testDispatcher.runBlockingTest {
        // given
        val userDetails = UserDetails(
            username = "user1", password = "123",
            name = "Juan", surname = "Doe", email = "user1@bbc.com"
        )
        coEvery {
                service.verifyUserIsNotInDatabase(userDetails.username, userDetails.email)
        } returns UserExistence(usernameInDatabase = false, emailInDatabase …
Run Code Online (Sandbox Code Playgroud)

android kotlin mockk

5
推荐指数
1
解决办法
6700
查看次数

标签 统计

android ×1

kotlin ×1

mockk ×1