Update README with testing and environment documentation

- Add environment configuration section with flavor commands
- Document specialization topic (Testing)
- Add testing strategy section with test structure
This commit is contained in:
m3mo 2026-02-04 14:41:03 +01:00
parent 6c0e66f958
commit 34d8694018

View File

@ -121,17 +121,87 @@ flutter gen-l10n
flutter run flutter run
``` ```
### Running Tests ### Environment Configuration
The app supports multiple environments via flavor configuration:
**Backend:**
```bash ```bash
cd backend # Development (default)
pytest -v flutter run
flutter run -t lib/main_dev.dart
# Production
flutter run -t lib/main_prod.dart --release
# With explicit environment variable
flutter run --dart-define=ENV=prod
``` ```
**Frontend:** Configuration is managed in `lib/core/config/app_config.dart`.
## Specialization Topic
**Testing + Internationalization**
This project focuses on two specialization areas for the HFTM Mobile Computing course:
1. **Testing**: Comprehensive test coverage with unit, widget, and integration tests
2. **Internationalization**: Full i18n support with English and German, locale-aware date formatting
## Testing Strategy
The project follows a multi-layered testing approach:
### Unit Tests
- **Domain Layer**: Entity validation, enum behavior
- **Data Layer**: Model serialization/deserialization (JSON)
- **Presentation Layer**: ViewModel business logic with mocked repositories
### Widget Tests
- Component rendering and display
- User interactions (tap, input)
- State changes and callbacks
### Integration Tests
- End-to-end user flows
- Navigation between screens
- Task creation and management lifecycle
### Running Tests
```bash ```bash
# Run all unit and widget tests
flutter test flutter test
# Run with coverage
flutter test --coverage
# Run integration tests (requires device/emulator)
flutter test integration_test
# Run specific test file
flutter test test/features/tasks/presentation/viewmodels/daily_tasks_viewmodel_test.dart
```
### Test Structure
```
test/
├── features/
│ ├── auth/
│ │ ├── data/models/ # Model serialization tests
│ │ └── domain/entities/ # Entity tests
│ ├── tasks/
│ │ ├── data/models/
│ │ ├── domain/
│ │ └── presentation/
│ │ ├── viewmodels/ # ViewModel unit tests
│ │ └── widgets/ # Widget tests
│ └── onboarding/
└── helpers/ # Test utilities
integration_test/
└── app_test.dart # End-to-end tests
``` ```
## Internationalization (i18n) ## Internationalization (i18n)