我有一个小部件测试,用于我命名的抽屉DefaultDrawer。我还想测试一下我在里面所做的方法DefaultDrawerState.例如,
class DefaultDrawerState extends State<DefaultDrawer> {
@override
Widget build(BuildContext context) {
// ..build..
}
Widget _circleAvatar() {
// a method I want to test
}
}
Run Code Online (Sandbox Code Playgroud)
_circleAvatar()当flutter_test查找器似乎无法调用我的小部件或其状态中的方法时,如何测试该方法?
下面是我现在的测试文件,没有测试小部件内的方法:
void main() {
testWidgets('Drawer Test', (WidgetTester tester) async {
final key = GlobalKey<ScaffoldState>();
await tester.pumpWidget(
MaterialApp(home: Scaffold(key: key, drawer: DefaultDrawer())));
// open drawer
key.currentState.openDrawer();
await tester.pump();
// did drawer open?
final drawerFinder = find.byType(Drawer);
expect(drawerFinder, findsOneWidget);
});
}
Run Code Online (Sandbox Code Playgroud) 我不明白我在这里缺少什么。我将 TextInputType 设置为数字,并且仍然可以输入任何字母、特殊字符甚至是表情符号。我也试过让孩子成为 TextInputType.numberWithOptions() 小部件,它打开相同的键盘。这只是我手机上的错误吗?P20 Pro
Row(
children: <Widget>[
Text('TextInputType.number:'),
Flexible(
child: TextField(
maxLength: 3,
keyboardType: TextInputType.number,
)),
],
)
Run Code Online (Sandbox Code Playgroud)