Was macht flutter-testing-apps?
Implementiert Unit-, Widget- und Integrationstests für eine Flutter-App. Verwenden Sie es, um Codequalität sicherzustellen und Regressionen durch automatisierte Tests zu verhindern.
Überblick
Dieses Skill-Paket bietet eine vollständige Anleitung zum Schreiben und Ausführen verschiedener Testarten in Flutter-Apps. Es deckt Unit-Tests, Widget-Tests und Integrationstests ab, die alle wesentlich sind, um die Stabilität und Zuverlässigkeit der Anwendung zu gewährleisten.
Funktionen
- Unit-Tests: Testen einzelne Funktionen, Methoden oder Klassen isoliert.
- Widget-Tests: Testen einzelne Widgets und ihr Verhalten.
- Integrationstests: Testen die gesamte App oder große Teile davon, einschließlich Navigation und Interaktionen.
Voraussetzungen
Stellen Sie sicher, dass Sie die neueste Version von Flutter und Dart installiert haben. Zusätzlich muss die flutter_test Bibliothek im pubspec.yaml enthalten sein.
Einrichtung
- Fügen Sie die Testabhängigkeiten zu Ihrer
pubspec.yamlhinzu:
dev_dependencies:
flutter_test:
sdk: flutter
integration_test:
sdk: flutter
- Führen Sie
flutter pub getaus, um die Abhängigkeiten zu installieren.
Unit-Tests
Unit-Tests sind schnell und testen kleine Codeeinheiten. Beispiel:
import 'package:flutter_test/flutter_test.dart';
void main() {
test('Addition funktioniert', () {
expect(2 + 2, 4);
});
}
Widget-Tests
Widget-Tests testen die Benutzeroberfläche und interagieren mit Widgets. Beispiel:
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('MeinWidget hat einen Titel', (WidgetTester tester) async {
await tester.pumpWidget(const MyWidget(title: 'Hallo'));
expect(find.text('Hallo'), findsOneWidget);
});
}
Integrationstests
Integrationstests testen die gesamte App. Sie werden in einem Ordner integration_test/ platziert.
import 'package:integration_test/integration_test.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
testWidgets('End-to-End Test: App startet', (WidgetTester tester) async {
app.main();
await tester.pumpAndSettle();
expect(find.text('Willkommen'), findsOneWidget);
});
}
Ausführen der Tests
# Unit- und Widget-Tests
flutter test
# Integrationstests
flutter test integration_test/
Tipps
- Verwenden Sie
setUpundtearDownfür gemeinsame Initialisierungen. - Nutzen Sie
mockitoodermocktailfür Mocking bei Unit-Tests. - Halten Sie Tests unabhängig und deterministisch.
Fehlerbehebung
- Wenn Tests fehlschlagen, überprüfen Sie die Pfade und Abhängigkeiten.
- Stellen Sie sicher, dass Sie die richtige Testbibliothek importiert haben.