请教个关于Flutter的单元测试问题
最近在学 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 询问也没得到解答。
请教个关于Flutter的单元测试问题
更多关于请教个关于Flutter的单元测试问题的实战教程也可以访问 https://www.itying.com/category-92-b0.html
i++和 i+=2 也不等价呀
i++ 是 i+=1
#1
#2
#3
我知道 +1 的+2 的区别。请看 append,如果个数多就会失败,不清楚为什么
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
#5
感谢大佬,主要是不明白模拟器一屏可以显示 10 个但是 testWidget 的时候就不行。
打印出来了也不知道单位是 dp 还是 px 。
幸亏我是自己敲的,然后粗心敲成 i++了,否则真就错过这一个知识点了。
后面跑 integration_test 也失败了,我再看看😭
关于Flutter的单元测试问题,以下是一些专业解答和建议:
Flutter单元测试主要用于测试应用程序中的最小代码块,如函数或方法。以下是进行Flutter单元测试的基本步骤:
- 设置测试环境:确保Flutter项目的
pubspec.yaml
文件中包含了必要的测试依赖,即flutter_test
包。 - 创建测试文件:在Flutter项目的
test/
文件夹中创建测试文件。通常,可以为每个Dart文件创建一个对应的测试文件。 - 编写测试代码:使用
test
函数定义单元测试用例。使用expect
函数来断言测试结果是否符合预期。 - 运行测试:使用命令行工具运行测试,执行
flutter test
命令,这将执行test/
文件夹下的所有测试文件。
在进行Flutter单元测试时,还需要注意以下几点:
- 测试异步代码:如果函数是异步的,需要使用
async
和await
关键词来测试。 - 分组测试:使用
group
函数来组织相关的测试用例,使测试更加结构化。 - 使用mocks和stubs:当测试的函数依赖外部系统时(如HTTP请求),可以使用
mockito
包来模拟这些依赖。 - 保持测试的独立性:确保每个测试用例都是独立的,不依赖于其他测试的状态或顺序。
- 代码覆盖率:利用覆盖率工具来确保测试覆盖了所有重要的代码路径。
希望这些信息能帮助你更好地进行Flutter单元测试。如有其他问题,欢迎继续提问。