在初始状态下,访问视图时,必须禁用该按钮,在执行特定操作后,必须启用该按钮。关于如何测试这种行为有什么想法吗?
您可以使用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();
});