Unit tests 和 Widget tests 在测试独立的类、函数或者组件时非常方便。然而,它们并不能够测试单独的模块形成的整体或者获取真实设备上应用运行状态。这些任务需要集成测试 integration tests 来处理。
Integration tests 是成对出现的:首先,发布一个可测试应用程序到真是设备或者模拟器,然后,利用独立的测试套件去驱动应用程序,检查一切是否完好可用。
为了创建这个测试对,可以使用 flutter_driver 包。这个包提供了创建可测试应用的工具并支持从测试套件驱动应用程序。
在这个章节中,我们将会学习如何去测试一个计数器应用程序,包括如何设置集成测试 integration tests、如何验证指定文本能否在应用程序内正常显示、如何模拟点击指定组件和如何运行 integration tests。
本教程将包含以下步骤:
1. 创建一个应用程序用于测试
2. 添加
flutter_driver
依赖
3. 创建测试文件
4. 安装测试应用程序
5. 编写集成测试 integration tests
6. 运行集成测试 integration test
1. 创建一个应用程序用于测试
首先,我们需要创建一个应用程序用于测试。在这个示例中,我们将会测试一个由 flutter create
命令创建的计数器应用。这个应用程序允许用户点击按钮增加计数。
此外,我们将会给
Text
组件和
FloatingActionButton
组件增加
ValueKey
属性。 这将允许我们在测试套件中标识特定组件并进行交互。
import
'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
title: 'Counter App',
home: MyHomePage(title: 'Counter App Home Page'),
);
}
}
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
title: 'Counter App',
home: MyHomePage(title: 'Counter App Home Page'),
);
}
}