Flutter 测试:MissingPluginException(在通道 plugins.flutter.io/shared_preferences 上找不到方法 getAll 的实现)

Posted

技术标签:

【中文标题】Flutter 测试:MissingPluginException(在通道 plugins.flutter.io/shared_preferences 上找不到方法 getAll 的实现)【英文标题】:Flutter Test: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences) 【发布时间】:2020-04-14 20:29:08 【问题描述】:

我正在尝试测试一个进行 api 调用并将该数据保存到共享首选项中的函数。我正在模拟我的 api 调用,但是在该函数中,当我试图获取共享首选项的实例时,我收到了这个错误:

MissingPluginException(在通道 plugins.flutter.io/shared_preferences 上找不到方法 getAll 的实现)

这是我的测试用例代码。

main() 
 // setup
group("Login", () 
setUp(() 
  flutterTest.TestWidgetsFlutterBinding.ensureInitialized();
);
test("Valid Creds Login", () async 
  final validRes = ExpectedResponses.login();
  final client = MockClient((request) async 
    final res = json.encode(validRes);
    return Response(res, 200);
  );
  ApiController.init(client);

  final user = await ApiController.login(
      email: "abc@gmail.com", password: "12345678");
  expectAsync0(() 
    expect(user.id, "1763");
  );
, skip: false);
);

【问题讨论】:

这有帮助吗? ***.com/questions/44357053/… 没有。我的问题与在 SharedPreferences 中保存值有关。 安装 SharedPreferences 包后,您是否完全重建了您的应用程序?你使用的是哪个版本的包和 Flutter? 我正在为它运行单元测试,在实际应用中它运行良好。共享首选项:0.5.6 |颤振:1.12.13+hotfix.6 这能回答你的问题吗? Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/ for many packages on Flutter 【参考方案1】:

在我的例子中,这个错误是通过终端上的 flutter clean 命令解决的。

【讨论】:

我认为flutter clean 是开发人员尝试的第一个命令【参考方案2】:

以下代码在我的 android 项目中运行完美。

  class MainActivity : FlutterActivity() 

     override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) 

             GeneratedPluginRegistrant.registerWith(flutterEngine)
      
    

【讨论】:

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

Flutter - 如何测试小部件中的抽屉测试?

Flutter 测试的最新进展

哪种是测试 Flutter 应用程序的最佳方法

flutter集成测试

Flutter学习之测试

Flutter学习之测试