Zum Inhalt

🚀 Quick Start Guide - Testing

1️⃣ Setup (einmalig)

# Dependencies installieren
flutter pub get

# Optional: Mocks generieren
dart run build_runner build --delete-conflicting-outputs

2️⃣ Ersten Test schreiben

Erstelle: test/unit/models/my_model_test.dart

import 'package:flutter_test/flutter_test.dart';
import '../../helpers/test_helpers.dart';

void main() {
  group('MyModel', () {
    test('sollte korrekt erstellt werden', () {
      // Arrange
      final model = MyModel(id: '1', name: 'Test');

      // Act & Assert
      expect(model.name, 'Test');
    });
  });
}

3️⃣ Test ausführen

# Alle Tests
flutter test

# Einzelner Test
flutter test test/unit/models/my_model_test.dart

# Mit Coverage
flutter test --coverage

4️⃣ Test-Struktur erweitern

Folge dem Schema:

test/unit/models/[dein_modul]/[dein_model]_test.dart
test/unit/blocs/[dein_bloc]/[dein_bloc]_test.dart
test/unit/services/[dein_service]_test.dart

⚡ Häufige Patterns

Model Test

test('toMap/fromMap', () {
  final model = TestHelpers.createTestCustomer();
  final map = model.toMap();
  final restored = Customer.fromMap('id', map);

  expect(restored.companyName, model.companyName);
});

Service Test mit Mock

test('getCustomers', () async {
  final mockService = MockCustomerService();
  mockService.setCustomers(testData);

  final result = await mockService.getCustomers();

  expect(result, hasLength(3));
});

Widget Test

testWidgets('zeigt Text an', (tester) async {
  await tester.pumpApp(Text('Hello'));

  expect(find.text('Hello'), findsOneWidget);
});

📖 Mehr Details

Siehe test/README.md für vollständige Dokumentation.