这里我们要测试的应用功能很简单,就是当用户按了这个 ActionChip 以后,它上面显示的数字要增加 1 .. 先打开定义这个小部件的文件 .. 找到这个 ActionChip .. 可以给它添加一个 key ,等会儿在测试里面可以使用这个 key 定位到具体的这个小部件 .. 它的值是一个 Key ... Key 的值是 actionChip ..
它的 label 是个 Text 小部件 .. 给它也添加一个 key .. 这个 Key 的值是 actionChipLabelText ..
回到之前创建的集成测试 .. 先在这个测试群组里面添加一个 actionChip .. 用一下 find.byValueKey ,找到 actionChip 这个 key 的小部件 ..
再添加一个 actionChipLabelText .. 用一下 find .. byValueKey ,找到 actionChipLabelText 这个 key 的小部件 ..
下面可以在这个群组里面添加两个测试 .. 用一下 test 方法去创建测试 .. starts at 0 .. 一个 async 方法 ..
做个断言 expect .. await 用一下 driver 去操控应用 .. getText .. 获取到文本 .. 小部件是 actionChipLabelText .. 期待它的值应该等于 0 ...
再去创建一个 test .. 用一下 test 方法 .. increments the counter .. 一个 async 方法 .. 方法里面用一下 driver 上的 tap ,点按一下界面上的 actionChip 这个小部件 ..
按了以后再去做一个断言 .. expect ... await .. driver.getText .. 小部件是 actionChipLabelText .. 它的值应该是 1 ..
运行测试
打开终端,运行一下创建的这个集成测试 .. 执行一下 flutter driver ... --target 等于 test_driver 下面的 app.dart ...
这个命令会去创建一个应用,把它安装在设备上或者设备模拟器的上面 . 我们的测试会连接到这个应用,然后根据写的测试去操控这个应用 ... 这个过程就相当于是真正的用户在使用我们的应用 ..
比如这个 increments the counter 这个测试,里面用了 driver 上的 tap ,按了界面上的 ActionChip .. 这就相当于是一个用户真的按了模拟器或者设备上的这个 ActionChip 小部件 ..
测试断言说按了这个小部件以后,它上面显示的数字的值会增加 1 ...
测试没有问题 .. 最终会显示 All tests passed !