我有一个flutter插件,它使用平台通道做一些本地工作 .
如何为需要此插件的应用程序正确编写测试?
单位测试仅适用于纯飞镖功能 . 我不相信Widget测试能够测试使用平台通道到本机的东西 . 因此,离开集成测试 .
据我所知,集成测试将启动您的主应用程序,您可以围绕您的应用程序控制它并测试 .
对于我的情况,我想测试使用插件的代码(使用平台通道进行原生内容) .
同样重要的是从平台通道返回的值,因此使用真实平台通道而不是模拟通道调用本机端是很重要的 .
那可能吗?我可以告诉集成测试人员打开我的应用程序的虚拟版本,有点像集成的小部件测试程序吗?
1 回答
似乎你的问题的简短答案是否定的 . Flutter驱动程序(集成测试)只能与UI,AFAIK进行交互 . 它无法拦截对插件的调用 . 它用于从UI测试整个应用程序 .
但是,可以在单元和小部件测试中拦截对插件的调用 . 这允许监视对插件的调用并模拟响应 . 这样您就可以测试插件的dart代码和/或使用该插件的小部件 . 测试本机代码将涉及编写本机测试 .
以下是拦截对插件进行测试的调用的示例:
有关完整示例,请参阅here