Flutter 初始项目单元测试解读

解读全在代码的注释里,请慢用 🤣

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

import 'package:flutter_app4/main.dart';

void main() {
  testWidgets('Counter increments smoke test', (WidgetTester tester) async {
    // 加载 MyApp 类
    await tester.pumpWidget(MyApp());

    // findsOneWidget 表示找到一个文字为「0」的 Widget
    expect(find.text('0'), findsOneWidget);

    // findsOneWidget 表示没有文字为「1」找到 Widget
    expect(find.text('1'), findsNothing);

    // 模拟按了一下「+」号图片
    await tester.tap(find.byIcon(Icons.add));

    IconData icon = Icons.add; // 图片返回的是 IconData 类型
    Finder addIcon = find.byIcon(icon); // find.xxx 返回的是 Finder 类型
    await tester.tap(addIcon); // 再模拟按了一下「+」号图片

    // tester 「抽身逃走」
    await tester.pump();

    // tester 已经「跑路」了,所以 tap 不会执行,但也不会报错
    await tester.tap(find.byIcon(Icons.add));

    // findsOneWidget 表示没有文字为「0」找到 Widget
    expect(find.text('0'), findsNothing);
    // findsOneWidget 表示找到一个文字为「2」的 Widget
    expect(find.text('2'), findsOneWidget);
  });
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在前面 关于MVP关于MVP的介绍很多,这不是本文的重点,这里列举近期一些比较好的文章。 Android官方MV...
    geniusmart阅读 33,070评论 23 349
  • 1.点击开发者工具左侧导航的「编辑」,我们可以看到这个项目,已经初始化并包含了一些简单的代码文件。最关键也是必不可...
    西门丨不吹雪阅读 472评论 0 0
  • 2019年2月27日 周三 小张又出车祸住院了。下午刚上班就听同事说。“到底怎么回事?”“还不是太清楚”。 ...
    寒梅hm阅读 217评论 0 2
  • 今早起床,一时兴起,在朋友圈放言预告午夜十二点要感谢2016年对我影响最大的一波人,后来想想真是给自己下了一个大任...
    职场投资人Amy阅读 236评论 0 0
  • 近些日子再读陈忠实先生所著《白鹿原》,与之前第一次读入心的程度又深了些,认真地读进去,对一些场面印象很深刻,文章本...
    爱画画的littleZoe阅读 721评论 0 0