Widget testing,小部件测试,这种测试,测试的就是 Flutter 应用里的小部件的显示还有交互行为 .. 在项目的 test 目录的下面你可以创建一个测试文件 .. 文件里要导入 flutter_test 这个包 .. 这个包要作为项目的开发依赖 .. 在 pubspec.yaml 里面的 dev_dependencies 里面说明一下需要的开发依赖 ..
我们可以先去创建一个要测试的小部件 .. 在 lib/demo 下面的 test 里面,这个 test_demo 文件里我已经定义好了一个小部件 .. 叫 TestDemo ..
下面可以再添加一个 stateful 类型的小部件 .. 名字叫 TestDemoHome ... 小部件里面用一个 Chip 小部件 .. 小部件的 label 是一个 Text ... 文字是 hello
然后在 TestDemo 里的 Scaffold 里面,添加一个 body 属性,它的值可以是这个 TestDemoHome ..
写测试
打开项目的 test 目录下的这个 ninghao_demo_test ... 在这里我们再添加一个小部件测试 .. 创建这种测试可以使用 flutter_test 这个包里面提供的 testWidgets 这个方法 ..
先描述一下这个测试 .. widget testing demo . 然后是一个回调 .. 这个回调方法接收一个 WidgetTester 类型的参数 .. 名字可以叫它 tester .. 它是一个 async 方法 ..
在这个方法里面可以先用 WidgetTester 这个东西去创建一个需要测试的小部件 .. await .. 用一下 tester,它就是一个 WidgetTester .. 这个 WidgetTester 是用 testWidgets 创建的 ..
使用这个 WidgetTester 构建一个小部件,可以用一下它上面的 pumpWidget 方法 ... 构建的小部件就是 TestDemo ... 确定这个测试文件里面已经导入了定义这个小部件的文件 ..
打开终端 .. 执行一下 flutter test ..
显示刚才创建的这个测试失败了 .. 原因是没找到需要的 MediaQuery 这个小部件 ..
创建要测试的小部件的时候,可以把它放在一个 MaterialApp 里面 .. 它的 home 属性的值可以设置成 TestDemo ...
回到终端,再运行一下测试 ...
这回会显示通过了全部的测试 ..