【问题标题】:MockK capturing a suspend lambda / coroutineMockK 捕获暂停 lambda / 协程
【发布时间】:2020-06-01 11:16:52
【问题描述】:

我正在尝试捕获暂停 lambda / 协程并调用它,但模拟调用只是挂起。

@Test
fun test() = coroutinesTestRule.testDispatcher.runBlockingTest {
    coEvery { db.withTransaction(captureCoroutine<suspend () -> Unit>()) } answers {
        coroutine<suspend () -> Unit>().coInvoke()
    }
}

如果我做错了什么或者这是不可能的,有什么提示或提示吗?

【问题讨论】:

    标签: unit-testing lambda kotlin-coroutines suspend mockk


    【解决方案1】:

    相信你需要使用coAnswers:

    @Test
    fun test() = coroutinesTestRule.testDispatcher.runBlockingTest {
        coEvery { 
           db.withTransaction(captureCoroutine<suspend () -> Unit>())
        } coAnswers {
           coroutine<suspend () -> Unit>().coInvoke()
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 2019-12-11
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多