En aquest tema, aprendrem com ignorar tests en JUnit utilitzant l'anotació @Ignore. Aquesta funcionalitat és útil quan volem desactivar temporalment un test sense eliminar-lo del codi. Això pot ser necessari per diverses raons, com ara quan un test està fallant a causa d'un error conegut que encara no s'ha solucionat, o quan el test no és rellevant per a una execució específica.

Què és l'anotació @Ignore?

L'anotació @Ignore s'utilitza per indicar que un test no s'ha d'executar. Quan un test està anotat amb @Ignore, JUnit el saltarà durant l'execució dels tests.

Sintaxi

import org.junit.Ignore;
import org.junit.Test;

public class ExampleTest {

    @Ignore
    @Test
    public void testIgnored() {
        // Aquest test serà ignorat
    }

    @Test
    public void testNotIgnored() {
        // Aquest test s'executarà normalment
    }
}

Ús de @Ignore amb una Raó

És possible proporcionar una raó per la qual el test està sent ignorat. Això pot ser útil per documentar el motiu de la ignorància del test.

Exemple

import org.junit.Ignore;
import org.junit.Test;

public class ExampleTest {

    @Ignore("Aquest test està fallant a causa d'un error conegut")
    @Test
    public void testIgnoredWithReason() {
        // Aquest test serà ignorat amb una raó especificada
    }

    @Test
    public void testNotIgnored() {
        // Aquest test s'executarà normalment
    }
}

Ignorant Classes Completes

També és possible ignorar una classe de test completa utilitzant l'anotació @Ignore a nivell de classe.

Exemple

import org.junit.Ignore;
import org.junit.Test;

@Ignore("Aquesta classe de test està en desenvolupament")
public class IgnoredClassTest {

    @Test
    public void testInIgnoredClass() {
        // Tots els tests d'aquesta classe seran ignorats
    }
}

Exercicis Pràctics

Exercici 1: Ignorant un Test

  1. Crea una classe de test anomenada CalculatorTest.
  2. Afegeix un mètode de test anomenat testAddition que comprovi la suma de dos nombres.
  3. Anota el mètode testAddition amb @Ignore i proporciona una raó.

Solució

import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class CalculatorTest {

    @Ignore("Aquest test està en desenvolupament")
    @Test
    public void testAddition() {
        int result = 2 + 3;
        assertEquals(5, result);
    }
}

Exercici 2: Ignorant una Classe Completa

  1. Crea una classe de test anomenada StringUtilsTest.
  2. Afegeix un mètode de test anomenat testIsEmpty que comprovi si una cadena està buida.
  3. Anota la classe StringUtilsTest amb @Ignore i proporciona una raó.

Solució

import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.assertTrue;

@Ignore("Aquesta classe de test està en desenvolupament")
public class StringUtilsTest {

    @Test
    public void testIsEmpty() {
        String str = "";
        assertTrue(str.isEmpty());
    }
}

Errors Comuns

  1. Oblidar l'anotació @Test: Recorda que @Ignore només funciona amb mètodes anotats amb @Test. Si oblides @Test, el mètode no serà reconegut com un test.

  2. No proporcionar una raó: Tot i que no és obligatori, proporcionar una raó per ignorar un test pot ajudar a altres desenvolupadors a entendre el motiu.

Resum

En aquesta secció, hem après com ignorar tests en JUnit utilitzant l'anotació @Ignore. Hem vist com ignorar mètodes individuals i classes completes, així com proporcionar raons per la ignorància dels tests. També hem practicat amb exercicis per reforçar aquests conceptes. Ara estem preparats per avançar al següent tema sobre assertions a JUnit.

© Copyright 2024. Tots els drets reservats