dart - Flutter 测试 MissingPluginException

标签 dart flutter

运行依赖于 SharedPreferences 插件的测试总是会导致

MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)

我的 pubspec.yaml

dev_dependencies:
  flutter_test:
     sdk: flutter

dependencies:
  flutter:
     sdk: flutter
  shared_preferences: 0.2.3

的代码在应用程序本身中运行良好。 为了运行使用插件的测试,我是否遗漏了一些我需要做的事情?

最佳答案

如果您使用的是 shared_preferences 0.2.4 及更高版本,请使用 setMockInitialValues:

SharedPreferences.setMockInitialValues({}); // set initial values here if desired

对于早期版本,您可以手动完成:

const MethodChannel('plugins.flutter.io/shared_preferences')
  .setMockMethodCallHandler((MethodCall methodCall) async {
    if (methodCall.method == 'getAll') {
      return <String, dynamic>{}; // set initial values here if desired
    }
    return null;
  });

关于dart - Flutter 测试 MissingPluginException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44357053/

相关文章:

flutter - 向命名参数传递 null 与不传递任何内容

asynchronous - Flutter:从 Future 获取值(value)的正确方法

dart - flutter 地理围栏

dart - 类型 '_BuiltList<Data>' 不是类型 'List<Data>' 的子类型

firebase - 如何将Firestore的收集数据存储到列表中?

flutter - 如何委托(delegate)调用 json_serialization 中的方法?

dart - 相对于居中的小部件定位小部件

http - 如何取消在 Flutter 中使用 http.MultipartRequest() 发送的正在进行的文件上传?

dart - Column 内展开的小部件未展开,而是不可见

android - Flutter 使用 setState() 方法从 native 方法调用更新 UI