【问题标题】:test FirebaseFirestore with JUnit using await, error使用等待使用 JUnit 测试 FirebaseFirestore,错误
【发布时间】:2021-06-28 16:41:43
【问题描述】:

我正在使用:

     val data = firestore.collection("add").document("departament").collection("anuncios").document(id).get()
            .await() 
return data.toObject(Anuncios::class.java)

在我的测试中,我是这样写的:

    @Test
    fun `Get Add by id correct, should return data`() = runBlockingTest {
        //GIVEN

        coEvery {
            firestore.collection("add").document("departament").collection("anuncios")
                .document("01sm3zv3aCzGrWX3ycPT").get()
        } returns dataTask


        // WHEN
        adRepository.getAnuncioId("01sm3zv3aCzGrWX3ycPT").apply {
            // THEN
            Truth.assertThat(this).isEqualTo(Anuncios())
            coVerify(exactly = 1) {
                firestore.collection("add").document("departament").collection("anuncios")
                    .document("01sm3zv3aCzGrWX3ycPT").get().await()
            }
            verify(exactly = 1) { datoSnap.toObject(Anuncios::class.java)!! }
        }
    }

错误抛出了我:

没有找到答案:Task(#6).isComplete()

await有问题,不知道怎么弄,我是单元测试新手

【问题讨论】:

    标签: android unit-testing kotlin junit mockk


    【解决方案1】:

    查看thisthis,你不能运行测试并等待真正的响应,你必须模拟它。

    【讨论】:

      【解决方案2】:

      我解决了:

      mockkStatic("kotlinx.coroutines.tasks.TasksKt")
      
      

      因为这会模拟所需的功能

      【讨论】:

        猜你喜欢
        • 2013-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-22
        相关资源
        最近更新 更多