MissingPluginException(在通道 plugins.flutter.io/firebase_core 上找不到方法 Firebase#initializeCore 的实现)在测试中

Posted

技术标签:

【中文标题】MissingPluginException(在通道 plugins.flutter.io/firebase_core 上找不到方法 Firebase#initializeCore 的实现)在测试中【英文标题】:MissingPluginException(No implementation found for method Firebase#initializeCore on channel plugins.flutter.io/firebase_core) on tests 【发布时间】:2021-01-15 00:02:52 【问题描述】:

我们正在使用新版本的 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

该应用程序在 iosandroid 上运行良好,我们仅在运行小部件测试时遇到问题。我们已经尝试过 Flutter 稳定版和开发版频道。

【问题讨论】:

遇到同样的问题,你找到解决办法了吗? 【参考方案1】:

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

class FakeFirebaseAppPlatform extends Fake implements FirebaseAppPlatform

他们只是伪造对象。

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

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

    模拟方法通道,如answer 所示,(我认为这更麻烦,如果您自己开发插件,则最适合)

【讨论】:

以上是关于MissingPluginException(在通道 plugins.flutter.io/firebase_core 上找不到方法 Firebase#initializeCore 的实现)在测试中的主要内容,如果未能解决你的问题,请参考以下文章

MissingPluginException(未找到通道上的方法的实现)

GoogleMaps Flutter 插件 MissingPluginException

发布模式android中的MissingPluginException

尝试直接从 FLUTTER 发出呼叫:MissingPluginException(未找到方法 callNumber 的实现

android Unhandled Exception 上的 Flutter 运行错误:MissingPluginException(未找到方法的实现)

MissingPluginException(在通道 com.amazonaws.amplify/amplify 上找不到方法配置的实现)