运行模块的仪器测试时禁用 Firebase 初始化

Kyl*_*yle 7 android gradle firebase android-instrumentation

我有一个多模块项目。我希望能够分别运行我为这些模块编写的仪器测试。当我运行测试并初始化活动时,我不断遇到以下错误。

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

我尝试在测试代码中使用测试应用程序的上下文显式调用此函数,但无济于事。我知道 firebase 是通过配置文件设置的,但我没有明确调用它来设置它。在实际应用程序启动之前,它会通过内容提供商(阅读博客)自动初始化。

因为这将是一个静态调用,并且我们没有显式调用它,所以我也看不到模拟它的方法。有没有办法在我的模块中完全禁用 UITest 运行的 firebase ?

小智 -1

如果您有一个可以监听的环境值,或者您的应用程序中有一个您可以知道在这些条件下存在或不存在的状态,您可以根据需要启动它。然而,这确实需要所有Firebase 调用进行运行状况检查,以防止它们在以下情况下触发:apps.length == 0

if (firebase.apps.length > 0) {
    // run firebase request
}
Run Code Online (Sandbox Code Playgroud)

或者

if (firebase.apps.length == 0) return;
Run Code Online (Sandbox Code Playgroud)