(WidgetTest)测试按钮状态(启用或禁用)



在初始状态下,访问视图时,必须禁用该按钮,在执行特定操作后,必须启用该按钮。关于如何测试这种行为有什么想法吗?

您可以使用tester.widget<ElevatedButton>(buttonFinder).enabled

这里有一个完整的例子,我之前在同一个场景中做了一个测试:

testWidgets('Button disabled when loading and enabled after result',
(WidgetTester tester) async {
LocationBlocMock locationBlocMock = LocationBlocMock();

await tester.pumpWidget(
MaterialApp(
home: Builder(
builder: (context) {
return BlocProvider<LocationBloc>(
create: (BuildContext context) => locationBlocMock,
child: LocationAccess(),
);
},
),
),
);

locationBlocMock.add(GetCurrentLocation());

await tester.pump(const Duration(seconds: 1));

final buttonFinder = find.byKey(const Key("give_permission_key"));

expect(buttonFinder, findsOneWidget);
expect(tester.widget<ElevatedButton>(buttonFinder).enabled, isFalse);

await tester.pump(const Duration(seconds: 1));

expect(tester.widget<ElevatedButton>(buttonFinder).enabled, isTrue);

locationBlocMock.close();
});

最新更新