MissingPluginException(在channel-plugins.flutter.io/Firebase_



我们使用的是FlutterFire的新版本,但在运行测试时遇到了一些问题,我们设法初始化了Firebase,并添加了以下内容:

setUp(() async {
TestWidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
});

但现在我们有这个错误消息:

MissingPluginException(No implementation found for method Firebase#initializeCore on channel plugins.flutter.io/firebase_core)
package:flutter/src/services/platform_channel.dart 159:7  MethodChannel._invokeMethod

该应用程序在iOS和Android上都运行良好,我们只有在运行小部件测试时才有问题。我们已经尝试过Flutter稳定和开发频道。

我假设您正在执行单元或小部件测试。看看插件本身是如何测试的。

class FakeFirebaseAppPlatform extends Fake implements FirebaseAppPlatform {}

他们只是伪造了这个物体。

为什么?因为这个插件是使用方法通道实现的,并且在测试时您无法访问本机平台。你唯一的选择是模拟或伪造你与Firebase的互动:

  1. 正如插件的作者使用Mockito 所做的那样

  2. 模仿这个答案中所示的方法通道,(在我看来,这更麻烦,最适合你自己开发插件(

相关内容

最新更新