Les proves són una part essencial del desenvolupament de programari, ja que asseguren que el codi funcioni com s'espera i ajuden a detectar errors abans que arribin als usuaris finals. En aquest mòdul, aprendrem sobre els diferents tipus de proves que es poden realitzar en una aplicació Flutter i com implementar-les.
Objectius del Mòdul
- Comprendre la importància de les proves en el desenvolupament de programari.
- Aprendre sobre els diferents tipus de proves: unitàries, de widgets i d'integració.
- Configurar l'entorn de proves en Flutter.
- Escriure i executar proves bàsiques.
Tipus de Proves
- Proves Unitàries
Les proves unitàries es centren en provar funcions o mètodes individuals per assegurar-se que funcionen correctament. Aquestes proves són ràpides d'executar i ajuden a detectar errors en el codi a nivell de funció.
- Proves de Widgets
Les proves de widgets verifiquen que els components de la interfície d'usuari (widgets) es comportin com s'espera. Aquestes proves poden incloure la verificació de l'estat dels widgets, la interacció amb l'usuari i la representació visual.
- Proves d'Integració
Les proves d'integració comproven que diferents parts de l'aplicació funcionin correctament quan es combinen. Aquestes proves són més complexes i poden incloure la interacció amb serveis externs, bases de dades i altres components.
Configuració de l'Entorn de Proves
Instal·lació de Paquets Necessaris
Per començar a escriure proves en Flutter, necessitem afegir alguns paquets al nostre projecte. Afegeix les següents dependències al fitxer pubspec.yaml
:
Després, executa flutter pub get
per instal·lar les dependències.
Estructura de les Proves
Les proves es col·loquen normalment en un directori anomenat test
a l'arrel del projecte. Cada fitxer de prova hauria de tenir un nom que reflecteixi el fitxer de codi que està provant, amb el sufix _test.dart
.
Exemple de Prova Unitària
A continuació, es mostra un exemple de prova unitària per a una funció que suma dos nombres:
Codi de la Funció
Prova Unitària
// test/calculadora_test.dart import 'package:flutter_test/flutter_test.dart'; import 'package:el_teu_projecte/calculadora.dart'; void main() { test('Prova de la funció suma', () { expect(suma(2, 3), 5); expect(suma(-1, 1), 0); expect(suma(0, 0), 0); }); }
Explicació del Codi
import 'package:flutter_test/flutter_test.dart';
: Importa el paquet de proves de Flutter.import 'package:el_teu_projecte/calculadora.dart';
: Importa el fitxer que conté la funció a provar.test('Prova de la funció suma', () { ... });
: Defineix una prova amb una descripció.expect(suma(2, 3), 5);
: Verifica que la funciósuma
retorni el valor esperat.
Executar les Proves
Per executar les proves, utilitza la següent comanda en la terminal:
Aquesta comanda executarà totes les proves del directori test
i mostrarà els resultats a la terminal.
Resum
En aquesta secció, hem après sobre la importància de les proves en el desenvolupament de programari i els diferents tipus de proves que es poden realitzar en una aplicació Flutter. Hem configurat l'entorn de proves i hem escrit una prova unitària bàsica. En les següents seccions, aprofundirem en les proves de widgets i d'integració per assegurar-nos que la nostra aplicació funcioni correctament en tots els aspectes.
Curs de Desenvolupament Flutter
Mòdul 1: Introducció a Flutter
- Què és Flutter?
- Configuració de l'Entorn de Desenvolupament
- Comprensió de l'Arquitectura de Flutter
- Creació de la Teva Primera Aplicació Flutter
Mòdul 2: Conceptes Bàsics de Programació en Dart
- Introducció a Dart
- Variables i Tipus de Dades
- Sentències de Flux de Control
- Funcions i Mètodes
- Programació Orientada a Objectes en Dart
Mòdul 3: Widgets de Flutter
- Introducció als Widgets
- Widgets Stateless vs Stateful
- Widgets Bàsics
- Widgets de Disseny
- Widgets d'Entrada i Formulari
Mòdul 4: Gestió de l'Estat
Mòdul 5: Navegació i Enrutament
- Introducció a la Navegació
- Navegació Bàsica
- Rutes Nomenades
- Passar Dades Entre Pantalles
- Deep Linking
Mòdul 6: Xarxes i APIs
- Obtenir Dades d'Internet
- Analitzar Dades JSON
- Gestió d'Errors de Xarxa
- Ús d'APIs REST
- Integració de GraphQL
Mòdul 7: Persistència i Emmagatzematge
- Introducció a la Persistència
- Preferències Compartides
- Emmagatzematge de Fitxers
- Base de Dades SQLite
- Ús de Hive per a l'Emmagatzematge Local
Mòdul 8: Conceptes Avançats de Flutter
- Animacions en Flutter
- Pintura Personalitzada i Canvas
- Canals de Plataforma
- Isolates i Concurrència
- Optimització del Rendiment
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries
- Proves de Widgets
- Proves d'Integració
- Tècniques de Depuració
Mòdul 10: Desplegament i Manteniment
- Preparació per al Llançament
- Construcció per a iOS
- Construcció per a Android
- Integració i Desplegament Continu (CI/CD)
- Manteniment i Actualització de la Teva Aplicació