最近在学 flutter 的单元测试,目前在跟着官方文档 https://codelabs.developers.google.com/codelabs/flutter-app-testing
但是今天有个问题,就是在 favorites_test 的时候,如果我把下面文件的 第 24 行 for 循环里的 i+=2 变成 i++, 就会测试失败
官方的项目在 https://github.com/flutter/codelabs/blob/main/testing_codelab/step_07/test/favorites_test.dart
不清楚什么原因,找到 flutter dev 的官方 discord 询问也没得到解答。
点击关闭按钮,就会从列表里移除。不知道为什么 i++ 的时候就没生效。
或者说如果 i<6 左右,i++ 也会生效,但是i<10就会失败。不知道为啥会跟个数有关。
1
Hurriance 275 天前 via iPhone
这两个算术结果本身就不一样吧
|
2
maichael 274 天前
i++和 i+=2 也不等价呀
|
3
lovedebug 274 天前
i++ 是 i+=1
|
4
magic3584 OP |
5
maichael 274 天前 1
@magic3584
find.byIcon 默认不会寻找 Offstage 的 node, 修改 physicalSize 某种程度上来说是比较 hack 的方法,毕竟说不准多大的 physicalSize 是合适的。 更恰当的方式是不跳过 Offstage 的寻找: var totalItems = tester.widgetList(find.byIcon(Icons.close, skipOffstage: false)).length; 具体的你可以参考这两个: https://api.flutter.dev/flutter/flutter_test/CommonFinders/byIcon.html https://api.flutter.dev/flutter/widgets/Offstage-class.html |