unit-testing - 如何使用 JUnit 在 android 中对 Firestore 进行单元测试?

标签 unit-testing junit google-cloud-firestore

我有以下代码:

class SimpleTest {
    @Test
    fun observable_isPass() {
        val store = FirebaseFirestore.getInstance()
        assert(true)
    }
}

当我尝试运行测试时,它在下面抛出异常:
Method getMainLooper in android.os.Looper not mocked.

如何在单元测试中测试 firestore 数据?

最佳答案

可能是一个迟到的答案,但 Firestore 使用不在主线程上的回调。为了进行单元测试,诸如 Retrofit 之类的 API 提供了在主线程上执行调用的方法,但据我所知 Firestore 不提供这种灵活性。这是暂停主线程的解决方法,直到失败或成功回调从 Firestore 返回响应。

val db = Firebase.firestore

val latch = CountDownLatch(1)

db.collection("test1").document("data")
    .set(
    // Data
    ).addOnFailureListener {
            // assertions here
            latch.countDown()
    }.addOnSuccessListener {
            // assertions here
            latch.countDown()
    }
// Will wait for the latch to become 0
latch.await()

关于unit-testing - 如何使用 JUnit 在 android 中对 Firestore 进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55586851/

相关文章:

reactjs - JEST 测试套件无法运行 : TypeError: (0 , _reactRedux.connect) 不是函数

javascript - flatMap 在 yarn 测试 JavaScript 中不起作用

android - Robolectric 由于调用存储而从 NullPointerException 失败

java - Junit 5,Spring 应用程序上下文未在 @DirtiesContext 上关闭

c# - 这个单元测试是否正确实现?

typescript - 使用 mocha 和 sinon 方法装饰器对函数进行单元测试

java - 使用 Mockito 或 jUnit 验证方法内的调用

java - Firestore通过字符串键查询文档

java - 在 Firestore Java 管理 SDK 中未收到有关网络断开和重新连接的文档更新

firebase - Firestore 规则 : How to allow nested document read based on parent property