首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >测试使用插件和平台通道的Flutter代码

测试使用插件和平台通道的Flutter代码
EN

Stack Overflow用户
提问于 2018-08-27 02:04:20
回答 1查看 3.7K关注 0票数 13

我有一个flutter插件,它使用平台通道来做一些本机工作。

如何正确地为需要此插件的应用程序编写测试?

单元测试只适用于纯dart函数。我不相信Widget测试能够测试使用平台通道到本机的东西。所以剩下的就是集成测试了。

据我所知,集成测试将启动你的主应用程序,你可以在你的应用程序周围控制它并进行测试。

对于我的例子,我只想测试使用插件的代码(它使用平台通道来获取本机内容)。

同样重要的是从平台通道返回的值,因此使用真正的平台通道而不是模拟通道调用本机端是很重要的。

这有可能吗?我可以告诉集成测试人员打开我的应用程序的虚拟版本吗,有点像集成的小部件测试程序?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-01 09:48:39

似乎对你的问题的简短回答是否定的。颤振驱动程序(集成测试)只能与UI、AFAIK交互。它不能拦截对插件的调用。它用于从UI测试整个应用程序。

然而,在单元和小部件测试中拦截对插件的调用是可能的。这允许监控对插件的调用并模拟响应。这样,您就可以测试插件的dart代码和/或使用该插件的小部件。测试本机代码将涉及编写本机测试。

下面是一个截取插件调用进行测试的示例:

代码语言:javascript
运行
复制
MethodChannel('audio_recorder')
    .setMockMethodCallHandler((MethodCall methodCall) async {
  log.add(methodCall);
  switch (methodCall.method) {
    case 'start':
      isRecording = true;
      return null;
    case 'stop':
      isRecording = false;
      return {
        'duration': duration,
        'path': path,
        'audioOutputFormat': extension,
      };
    case 'isRecording':
      return isRecording;
    case 'hasPermissions':
      return true;
    default:
      return null;
  }
});

有关完整的示例,请参见here

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52028969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档