当前位置: 首页 > 面试题库 >

Flutter测试MissingPluginException

虞华彩
2023-03-14
问题内容

运行依赖于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;
  });


 类似资料:
  • 输出控制台 我正试图将AdMob纳入我的Android flutter项目。 Build.Gradle app/build.gradle main_screen.dart 没有任何错误或警告的广告。

  • 22.13.5.测试检测 测试任务检测哪些类是通过检查编译测试类的测试类。默认情况下它会扫描所有.calss文件.可以自定义包含/排除哪些类需不要要被扫描.所使用不同的测试框架(JUnit/ TestNG)时测试类检测使用不同的标准。 当使用JUnit,我们扫描的JUnit3和JUnit4的测试类。如果任一下列条件匹配,类被认为是一个JUnit测试类: 类或父类集成自TestCase或Groovy

  • 22.13.2.调试 测试任务提供了Test.getDebug()属性,可使JVM等待调试器附加到5005端口后在进行调试. 通过调用--debug-JVM任务选项,这也可以启用调试任务(since Gradle1.12)。

  • 我一直试图让flutter检测Android SDK。 回报 PS I:\project\flutter\fluttertest\flutterproject>flutter doctor-v [√]flutter(Channel beta,v0.1.5,在Microsoft Windows上[Version 10.0.16299.248],locale en-美国) •flutter Versi

  • 我有一个flatter插件,它使用平台频道做一些本地工作。 如何为需要此插件的应用程序正确编写测试? 单元测试只适用于纯省道功能。我不相信Widget测试能够测试使用平台通道到本机的东西。所以剩下的就是集成测试了。 据我所知,集成测试将启动您的主应用程序,您可以围绕您的应用程序控制它并测试东西。 在我的例子中,我只想测试使用插件的代码(该插件使用平台通道来处理本机内容)。 同样重要的是从平台渠道返

  • 程序测试是一种找到缺陷的有效方式,但是它对证明没有缺陷却无能为力。 Edsger W. Dijkstra, “The Humble Programmer” (1972) 作为软件工程质量保障体系的重要一环,测试是应该引起我们充分注意并重视的事情。前面说过,Rust 语言的设计集成了最近十多年中总结出来的大量最佳工程实践,而对测试的原生集成也正体现了这一点。下面来看 Rust 是怎么设计测试特性的。