Firebase 应用程序中 Compose 的仪器测试

pep*_*umo 2 android-testing android-jetpack-compose

我试图在撰写中创建测试,但总是收到以下错误:

默认 FirebaseApp 在此过程中未初始化 X. 确保首先调用 FirebaseApp.initializeApp(Context)。

我试图最大限度地简化测试代码:

@get:Rule
val composeTestRule = createComposeRule()

@Test
fun test() {

    composeTestRule.setContent {
        Text("Whatever")
    }
}
Run Code Online (Sandbox Code Playgroud)

但仍然收到该错误。

我尝试过 uiThreadTestRule:

@get:Rule
val composeTestRule = createComposeRule()

@get:Rule
var uiThreadTestRule: UiThreadTestRule = UiThreadTestRule()

@Test
fun test() {
    uiThreadTestRule.runOnUiThread {
        FirebaseApp.initializeApp(InstrumentationRegistry.getInstrumentation().targetContext)
    }

    composeTestRule.setContent {
        Text("Whatever")
    }
}
Run Code Online (Sandbox Code Playgroud)

并且还具有相同的 composeTestRule.runOnUiThread:

@get:Rule
val composeTestRule = createComposeRule()

@Test
fun test() {
    composeTestRule.runOnUiThread {
        FirebaseApp.initializeApp(InstrumentationRegistry.getInstrumentation().targetContext)
    }

    composeTestRule.setContent {
        Text("Whatever")
    }
}
Run Code Online (Sandbox Code Playgroud)

如何FirebaseApp is not initialized修复该错误以便测试该应用程序的可组合项?

更新

这似乎与 createComposeRule() 有关,导致以下测试:

@get:Rule
val composeTestRule: ComposeContentTestRule = createComposeRule()

@Test
fun test() {
    assertEquals(2, 1 + 1)
}
Run Code Online (Sandbox Code Playgroud)

也会失败,如果我删除规则,它就会通过。如果可以删除它,我不需要在测试中使用 firebase 依赖项。

jep*_*bio 5

将其添加到该模块的 gradle 文件中以排除 firebase 依赖项:

configurations {
    androidTestImplementation {
        exclude group: 'com.google.firebase', module: 'firebase-perf'
    }
}
Run Code Online (Sandbox Code Playgroud)