Flutter 黄金测试

介绍

Golden Test是一种用于检查UI的测试方法,它主要用于确保UI在不引起意外更改的情况下保持一致,而不仅仅是逻辑变化。Golden Test的基本思想是将UI的屏幕截图保存为“黄金”标准,然后在每次运行测试时,将当前生成的屏幕截图与这个标准进行比较。

创建

1
flutter test --update-goldens

或者

1
flutter test --update-goldens PATH

测试

1
2
3
4
5
6
7
8
9
import 'package:flutter_test/flutter_test.dart';
import 'package:your_flutter_app/main.dart' as app;

void main() {
testGoldens('MyApp', (WidgetTester tester) async {
await tester.pumpWidget(app.MyApp());
await expectLater(find.byType(app.MyApp), matchesGoldenFile('golden/my_app.png'));
});
}

这里,matchesGoldenFile 函数用于比较当前屏幕截图与预定义的黄金文件。如果文件不匹配,测试就会失败。