Skip to content

Exercices avancés

Mise en pratique : Application du principe de séparation Vue/Logique métier

Objectifs :

  • Comprendre les limites de setState
  • Utiliser des notificateurs de changements
  • Implémenter des packages de state management (Provider, Bloc, etc.)

Exercices pratiques :

  1. GET Request : Récupération de données depuis une API
  2. POST Request : Envoi de données vers un serveur
  3. Gestion d’erreurs : Traitement des erreurs réseau
  4. Authentification : Gestion des tokens et headers

Exemple POST :

http.post(
Uri.parse('http://localhost:8080/reply'),
body: '{"msgId":123}',
headers: {'authorization': token},
);

Types de tests à pratiquer :

  1. Tests unitaires : Logique métier
  2. Tests de widgets : Interface utilisateur
  3. Tests d’intégration : Flux complets
  4. Golden tests : Rendu visuel

Exemple de test de widget :

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame
await tester.pumpWidget(const MyApp());
// Verify that our counter starts at 0
expect(find.text('0'), findsOneWidget);
expect(find.text('1'), findsNothing);
// Tap the '+' icon and trigger a frame
await tester.tap(find.byIcon(Icons.add));
await tester.pump();
// Verify that our counter has incremented
expect(find.text('0'), findsNothing);
expect(find.text('1'), findsOneWidget);
});
}