【发布时间】:2022-06-10 20:28:48
【问题描述】:
目前我工作的不是我使用此插件的项目:https://pub.dev/packages/pin_code_fields
所以我很困惑我们应该在什么级别测试小部件(小部件测试)。
- 使用 Key 来检查树中是否存在小部件,以便稍后根据 Type 期待它。
- 我已经在使用泵的测试中检查了一个输入的引脚并输入文本然后进行比较。
- 我有点困惑如何检查两个 PinCodeTextFields 并检查它们是否具有相似的代码。
谁能告诉在颤振测试中要考虑什么(在什么限制下停止)。 我正在添加一些示例代码,其中我已经涵盖了前两点。
void main() {
Widget _wrapWithMaterialApp(Widget widget) => MaterialApp(home: Scaffold(
body: widget,
));
testWidgets('PinCode text field testing', (WidgetTester tester) async {
await tester.pumpWidget(_wrapWithMaterialApp(AppPinWidget(
controller: TextEditingController())));
var widget = find.byType(AppPinWidget);
expect(widget, findsOneWidget);
final textField = find.descendant(
of: find.byType(PinCodeTextField),
matching: find.byType(AnimatedContainer),
);
await tester.tap(textField.first);
await tester.pump();
await tester.enterText(find.byType(TextFormField).first, '3');
await tester.pump();
expect(find.text('3'), findsWidgets);
await tester.pump(const Duration(milliseconds: 300));
await tester.enterText(find.byType(TextFormField).first, '4');
await tester.pump();
expect(find.text('4'), findsWidgets);
await tester.pump(const Duration(milliseconds: 300));
await tester.enterText(find.byType(TextFormField).first, '5');
await tester.pump();
expect(find.text('5'), findsWidgets);
await tester.pump(const Duration(milliseconds: 300));
await tester.enterText(find.byType(TextFormField).first, '6');
await tester.pump();
expect(find.text('6'), findsWidgets);
await tester.pump(const Duration(milliseconds: 300));
expect(find.byType(PinCodeTextField), findsOneWidget);
});
}
【问题讨论】:
-
pincode 只是自定义文本字段,您可以使用 textEditingController.text() 获取值并将其作为字符串进行比较
标签: android ios flutter flutter-test