Les proves unitàries són una part fonamental del desenvolupament de programari, ja que permeten verificar que les unitats individuals de codi funcionin correctament. En el context de Flutter, les proves unitàries es fan per assegurar que les funcions i mètodes del nostre codi Dart es comportin com s'espera.

Objectius d'aquest tema

  • Comprendre què són les proves unitàries.
  • Aprendre a configurar un entorn de proves unitàries en Flutter.
  • Escriure i executar proves unitàries bàsiques.
  • Conèixer les bones pràctiques per a les proves unitàries.

Què són les Proves Unitàries?

Les proves unitàries són proves automàtiques que verifiquen el comportament d'una unitat de codi, com ara una funció o un mètode. Aquestes proves es centren en una part específica del codi i comproven que funcioni correctament en diferents situacions.

Beneficis de les Proves Unitàries

  • Detecció primerenca d'errors: Les proves unitàries permeten detectar errors en fases primerenques del desenvolupament.
  • Facilitat de manteniment: Amb proves unitàries, és més fàcil refactoritzar el codi sense introduir nous errors.
  • Documentació: Les proves unitàries poden servir com a documentació del comportament esperat del codi.

Configuració de l'Entorn de Proves

Flutter proporciona un paquet anomenat test que facilita l'escriptura i execució de proves unitàries. Per començar, hem d'afegir aquest paquet al nostre projecte.

Afegir el Paquet de Proves

  1. Obre el fitxer pubspec.yaml del teu projecte Flutter.
  2. Afegeix la dependència del paquet test:
dev_dependencies:
  test: ^1.16.0
  1. Executa flutter pub get per instal·lar la dependència.

Escriure la Primera Prova Unitària

Anem a escriure una prova unitària per a una funció simple que suma dos nombres.

Exemple de Funció a Provar

int suma(int a, int b) {
  return a + b;
}

Crear un Fitxer de Proves

  1. Crea un fitxer nou dins del directori test del teu projecte, per exemple, test/suma_test.dart.
  2. Importa el paquet test i la funció que vols provar:
import 'package:test/test.dart';
import 'package:el_teu_projecte/suma.dart';

Escriure la Prova

void main() {
  test('suma de dos nombres', () {
    expect(suma(2, 3), 5);
    expect(suma(-1, 1), 0);
    expect(suma(0, 0), 0);
  });
}

Explicació del Codi

  • test: Defineix una prova unitària. El primer argument és una descripció de la prova, i el segon és una funció que conté la lògica de la prova.
  • expect: Comprova que el resultat de la funció suma sigui igual al valor esperat.

Executar les Proves

Per executar les proves, pots utilitzar la línia de comandes:

flutter test

Això executarà totes les proves dins del directori test i mostrarà els resultats a la consola.

Bones Pràctiques per a les Proves Unitàries

  • Proves Independents: Cada prova ha de ser independent i no ha de dependre de l'estat d'altres proves.
  • Cobertura de Codi: Intenta cobrir el màxim de codi possible amb les proves, incloent-hi casos límit i situacions excepcionals.
  • Noms Descriptius: Utilitza noms descriptius per a les proves per facilitar la comprensió del que estan provant.
  • Refactorització: Refactoritza les proves per evitar duplicació de codi i mantenir-les netes i llegibles.

Exercici Pràctic

Exercici

Escriu una prova unitària per a una funció que multiplica dos nombres.

Funció a Provar

int multiplica(int a, int b) {
  return a * b;
}

Prova Unitària

  1. Crea un fitxer nou dins del directori test, per exemple, test/multiplica_test.dart.
  2. Escriu la prova unitària:
import 'package:test/test.dart';
import 'package:el_teu_projecte/multiplica.dart';

void main() {
  test('multiplicació de dos nombres', () {
    expect(multiplica(2, 3), 6);
    expect(multiplica(-1, 1), -1);
    expect(multiplica(0, 5), 0);
  });
}

Solució

La solució hauria de ser similar a la prova unitària escrita anteriorment per a la funció suma.

Conclusió

Les proves unitàries són essencials per assegurar la qualitat del codi i facilitar el manteniment del projecte. En aquest tema, hem après a configurar l'entorn de proves, escriure i executar proves unitàries bàsiques, i seguir bones pràctiques per a les proves unitàries. Amb aquestes habilitats, estaràs millor preparat per desenvolupar aplicacions Flutter robustes i fiables.

Curs de Desenvolupament Flutter

Mòdul 1: Introducció a Flutter

Mòdul 2: Conceptes Bàsics de Programació en Dart

Mòdul 3: Widgets de Flutter

Mòdul 4: Gestió de l'Estat

Mòdul 5: Navegació i Enrutament

Mòdul 6: Xarxes i APIs

Mòdul 7: Persistència i Emmagatzematge

Mòdul 8: Conceptes Avançats de Flutter

Mòdul 9: Proves i Depuració

Mòdul 10: Desplegament i Manteniment

Mòdul 11: Flutter per a Web i Escriptori

© Copyright 2024. Tots els drets reservats