This test builds a button widget that changes its text when tapped. It first checks the initial text, taps the button, then checks the updated text.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
class MyButtonWidget extends StatefulWidget {
@override
State<MyButtonWidget> createState() => _MyButtonWidgetState();
}
class _MyButtonWidgetState extends State<MyButtonWidget> {
String buttonText = 'Press me';
void _changeText() {
setState(() {
buttonText = 'Pressed';
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: ElevatedButton(
onPressed: _changeText,
child: Text(buttonText),
),
),
),
);
}
}
void main() {
testWidgets('Button text changes when tapped', (WidgetTester tester) async {
await tester.pumpWidget(MyButtonWidget());
expect(find.text('Press me'), findsOneWidget);
await tester.tap(find.byType(ElevatedButton));
await tester.pump();
expect(find.text('Pressed'), findsOneWidget);
});
}