Skip to main content

测试 Flutter 应用

应用的功能越多,手动测试就越困难。自动化测试有助于确保您的应用在发布前能够正确运行,同时保持您的功能和错误修复速度。

自动化测试分为以下几类:

  • 单元测试 测试单个函数、方法或类。
  • 部件测试 (在其他UI框架中称为 组件测试 )测试单个部件。
  • 集成测试 测试完整的应用程序或应用程序的很大一部分。

一般来说,一个经过良好测试的应用程序有很多单元测试和部件测试,由代码覆盖率跟踪,加上足够的集成测试来涵盖所有重要的用例。此建议基于不同类型的测试之间存在权衡的事实,如下所示。

权衡单元测试部件测试集成测试
可靠性更高最高
维护成本更高最高
依赖项更多最多
执行速度快速快速

单元测试

#

单元测试 测试单个函数、方法或类。单元测试的目标是在各种条件下验证逻辑单元的正确性。被测单元的外部依赖项通常会被模拟。单元测试通常不读取或写入磁盘,不渲染到屏幕,也不接收来自运行测试的进程之外的用户操作。有关单元测试的更多信息,您可以查看以下配方或在您的终端中运行 flutter test --help

配方

#

部件测试

#

部件测试 (在其他UI框架中称为 组件测试 )测试单个部件。部件测试的目标是验证部件的UI外观和交互是否符合预期。测试部件涉及多个类,并需要一个提供适当部件生命周期上下文的测试环境。

例如,被测试的部件应该能够接收和响应用户操作和事件,执行布局,并实例化子部件。因此,部件测试比单元测试更全面。但是,与单元测试一样,部件测试的环境也被替换为比完整的UI系统简单得多的实现。

配方

#

集成测试

#

集成测试 测试完整的应用程序或应用程序的很大一部分。集成测试的目标是验证所有被测试的部件和服务是否按预期协同工作。此外,您可以使用集成测试来验证应用程序的性能。

通常,集成测试 在真实设备或操作系统模拟器(例如 iOS 模拟器或 Android 模拟器)上运行。被测应用程序通常与测试驱动程序代码隔离,以避免歪曲结果。

有关如何编写集成测试的更多信息,请参阅集成测试页面

配方

#

持续集成服务

#

持续集成 (CI) 服务允许您在推送新的代码更改时自动运行测试。这提供了及时的反馈,说明代码更改是否按预期工作并且没有引入错误。

有关在各种持续集成服务上运行测试的信息,请参阅以下内容: