En aquest tema, aprendrem com assegurar-nos que el nostre codi funcioni correctament mitjançant tècniques de proves i depuració. Aquestes habilitats són essencials per a qualsevol desenvolupador, ja que ajuden a identificar i corregir errors, millorant la qualitat del codi i l'experiència de l'usuari.

  1. Introducció a les Proves

1.1. Tipus de Proves

Hi ha diversos tipus de proves que podem realitzar per assegurar-nos que el nostre codi funcioni correctament:

  • Proves Unitàries: Proves que verifiquen el funcionament de components individuals del codi, com ara funcions o mètodes.
  • Proves d'Integració: Proves que verifiquen la interacció entre diferents components del sistema.
  • Proves de Sistema: Proves que verifiquen el sistema complet per assegurar-se que compleix amb els requisits especificats.
  • Proves d'Acceptació: Proves que verifiquen si el sistema compleix amb les expectatives i necessitats de l'usuari final.

1.2. Eines de Proves

Algunes eines populars per realitzar proves en Objective-C són:

  • XCTest: El framework de proves unitàries d'Apple per a Objective-C i Swift.
  • OCMock: Una biblioteca per crear mocks en Objective-C, útil per a proves d'unitat.

  1. Proves Unitàries amb XCTest

2.1. Configuració de XCTest

XCTest ve integrat amb Xcode, així que no cal instal·lar res addicional. Per crear una prova unitària, segueix aquests passos:

  1. Crear un nou fitxer de prova:

    • A Xcode, selecciona File > New > File....
    • Tria Unit Test Case Class i fes clic a Next.
    • Dona un nom a la classe de prova i assegura't que estigui associada amb el teu projecte.
  2. Afegir proves:

    • Obre el fitxer de prova creat i afegeix les teves proves dins dels mètodes testExample.

2.2. Exemple de Prova Unitària

A continuació, es mostra un exemple de prova unitària per a una funció que suma dos nombres:

#import <XCTest/XCTest.h>
#import "Calculator.h"

@interface CalculatorTests : XCTestCase
@end

@implementation CalculatorTests

- (void)testAddition {
    Calculator *calculator = [[Calculator alloc] init];
    NSInteger result = [calculator addNumber:5 toNumber:3];
    XCTAssertEqual(result, 8, @"La suma de 5 i 3 hauria de ser 8");
}

@end

2.3. Executar Proves

Per executar les proves, selecciona Product > Test o utilitza la drecera de teclat Cmd + U. Xcode executarà totes les proves i mostrarà els resultats a la consola.

  1. Depuració

3.1. Ús de l'Entorn de Depuració de Xcode

Xcode proporciona un entorn de depuració potent que inclou:

  • Punts de trencament (Breakpoints): Permeten aturar l'execució del programa en un punt específic per inspeccionar l'estat del programa.
  • Consola de depuració: Permet executar comandes per inspeccionar i modificar l'estat del programa durant l'execució.

3.2. Afegir i Gestionar Punts de Trencament

Per afegir un punt de trencament:

  1. Fes clic a la barra de números de línia al costat de la línia de codi on vols aturar l'execució.
  2. Un punt blau apareixerà indicant que s'ha afegit un punt de trencament.

Per gestionar els punts de trencament:

  • Fes clic dret sobre el punt de trencament per veure opcions com desactivar-lo o eliminar-lo.
  • Utilitza el panell de punts de trencament (View > Navigators > Show Breakpoint Navigator) per veure i gestionar tots els punts de trencament del projecte.

3.3. Inspeccionar Variables

Quan l'execució s'atura en un punt de trencament, pots inspeccionar les variables:

  • Passa el cursor sobre una variable per veure el seu valor.
  • Utilitza la consola de depuració per executar comandes com po (print object) per imprimir el valor d'una variable.

3.4. Exemple de Depuració

Suposem que tenim una funció que calcula el factorial d'un nombre, però sembla que no funciona correctament:

- (NSInteger)factorialOfNumber:(NSInteger)number {
    if (number == 0) {
        return 1;
    }
    return number * [self factorialOfNumber:number - 1];
}

Afegim un punt de trencament a la línia return number * [self factorialOfNumber:number - 1]; i executem el programa. Quan l'execució s'aturi, inspeccionem el valor de number per assegurar-nos que la funció està calculant correctament el factorial.

  1. Errors Comuns i Solucions

4.1. Errors de Sintaxi

Els errors de sintaxi són fàcils de detectar perquè Xcode els subratlla en vermell. Revisa el codi per assegurar-te que no hi ha errors tipogràfics o de sintaxi.

4.2. Errors de Temps d'Execució

Aquests errors es produeixen durant l'execució del programa. Utilitza punts de trencament i la consola de depuració per identificar la causa de l'error.

4.3. Errors de Lògica

Els errors de lògica són més difícils de detectar perquè el codi es compila i s'executa sense errors, però no produeix els resultats esperats. Les proves unitàries són una eina valuosa per identificar i corregir aquests errors.

  1. Resum

En aquesta secció, hem après la importància de les proves i la depuració en el desenvolupament de programari. Hem vist com configurar i executar proves unitàries amb XCTest, així com utilitzar l'entorn de depuració de Xcode per identificar i corregir errors. Amb aquestes habilitats, estàs millor preparat per assegurar-te que el teu codi funcioni correctament i sigui de la màxima qualitat.

© Copyright 2024. Tots els drets reservats