我已经用下面的代码创建了颤振小部件,其中Tabs正在创建,如下面所示,代码片段中没有keys。
如何找到Settings选项卡&点击它?这能用祖先或后代来完成吗?
这是tabs的图像

下面是应用程序代码片段。
// Imports...
class BottomNavigation extends StatelessWidget {
final TabItem currentTab;
final ValueChanged<TabItem> selectedTab;
const BottomNavigation({
super.key,
required this.currentTab,
required this.selectedTab,
});
@override
Widget build(BuildContext context) {
return BottomNavigationBar(
currentIndex: TabItem.values.indexOf(currentTab),
type: BottomNavigationBarType.fixed,
items: [
_buildItem(TabItem.home, context),
_buildItem(TabItem.creditHealth, context),
_buildItem(TabItem.setting, context),
],
onTap: (index) => selectedTab(
TabItem.values[index],
),
);
}
BottomNavigationBarItem _buildItem(
TabItem item,
BuildContext context
// var toolTip,
) {
return BottomNavigationBarItem(
// tooltip: toolTip,
icon: SvgPicture.asset(
svgF(tabIcons[item]!),
),
label: context.translate(
tabNameKeys[item]!,
),
);
}
}
发布于 2022-11-28 21:23:10
你应该能够通过文字点击:
import 'package:flutter_test/flutter_test.dart'
void main() {
testWidgets('signs up', (WidgetTester tester) async {
await tester.pumpWidget(YourApp());
await tester.tap(find.text('Settings'));
}如果您支持英语以外的语言,那么谨慎的做法是为您想要交互的小部件分配一个键,然后在测试中使用这些键。
// widget code
BottomNavigationBarItem(
key: Key('settings'),
icon: SvgPicture.asset(svgF(tabIcons[item]!)),
label: context.translate(tabNameKeys[item]!),
);
// test code
await tester.tap(find.byKey(Key('settings')));https://stackoverflow.com/questions/74556690
复制相似问题