TestTextInput 状态重置
摘要
#现在,TestTextInput
实例(系统屏幕键盘的存根)的状态在测试之间重置。
上下文
#Flutter 测试框架使用一个名为 TestTextInput
的类来跟踪和操作小部件测试中的编辑状态。各个测试可以进行修改此对象内部状态的调用,有时是间接的(例如,通过在 SystemChannels.textInput
上设置自己的处理程序)。随后的测试可能会检查 WidgetTester.testTextInput
的状态并获取意外的值。
更改说明
#现在,在运行 testWidgets
测试之前,会重置 WidgetTester.testTextInput
的状态。
迁移指南
#必须更新依赖于先前运行的测试的脏状态的测试。例如,以下测试(来自 packages/flutter/test/material/text_field_test.dart
中的 'Controller can update server'
测试)之前通过是因为先前测试的脏状态和在应该设置状态的情况下未能实际设置状态的组合。
迁移前代码
在 widgetsTest
中,在实际更改文本编辑小部件上的文本之前,此调用可能会成功
dart
expect(tester.testTextInput.editingState['text'], isEmpty);
迁移后代码
要么完全删除此调用,要么考虑使用以下方法来断言状态尚未被修改。
dart
expect(tester.testTextInput.editingState, isNull);
时间线
#包含于版本:1.16.3
稳定版发布:1.17
参考
#API 文档
相关问题
相关 PR
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面最后更新于 2024-04-04。 查看源代码 或 报告问题.