我正在使用flutter test
。我想测试tap a widget
之后的东西,但我不知道如何找到按钮。因为我自定义它而不是使用Icon
或iconButton
。另外,我无法根据它的text
找到它,因为另一个小部件具有相同的名称。还有两个InkWell
小部件,如您所见。基本测试代码在这里。
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:grpc/grpc.dart';
import 'package:project/page/login.dart';
void main() {
testWidgets('login page test', (WidgetTester tester) async {
// Build our app and trigger a frame
await tester.pumpWidget(Login());
expect(find.text('login'), findsNWidgets(2));
expect(find.text('ID'), findsOneWidget);
expect(find.text('password'), findsOneWidget);
expect(find.text('end'), findsOneWidget);
// how to find my custom button
await tester.tap((find.byElementType(InkWell))); <- my question here
// test other things after tapping the button.
});
}
4条答案
按热度按时间klr1opcd1#
像这样你必须提到key(key:const Key(“btnLogin”),)
在Widget测试中
hc8w905p2#
像这样我们也能做到
h79rfbju3#
像这样给墨水盒按钮取一个键名。
eiee3dmh4#
使用***find. byType()***代替 find.byElementType()。
所以你的代码应该是这样的:
wait tester.tap((find.byType(InkWell)));