首页 > 解决方案 > 如何在 Flutter 移动应用项目中使用 testWidgets 测试画布

问题描述

我正在阅读有关如何使用 testWidgets 函数为颤振应用程序小部件构建测试的信息,例如创建新颤振项目时默认提供的这个测试:

// <project>/test/widget_test.dart
void main() {
  testWidgets('Counter increments smoke test', (WidgetTester tester) async {
    await tester.pumpWidget(CounterApp());
    // validate counter starts at zero
    expect(find.text('0'), findsOneWidget);
    
    await tester.tap(find.byIcon(Icons.add));
    await tester.pump();

    expect(find.text('0'), findsNothing);
    expect(find.text('1'), findsOneWidget);
  }
}

但是如何测试画布以查看图纸/图案和段落是否正确显示?如果我用 绘制段落,finder 对象是否会找到 Text 小部件canvas.drawParagraph(...)我在docs中找不到有关此的信息。

标签: fluttertestingdartflutter-test

解决方案


一般来说,测试 Canvas(无论采用何种技术)都应使用视觉测试(或视觉回归测试)来执行。

flutter_test包提供matchesGoldenFile了使其成为可能的功能。Flutter 的 Github 上有一个很好的教程可以指导您完成。


推荐阅读