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
- Crea una classe de test anomenada
CalculatorTest
. - Afegeix un mètode de test anomenat
testAddition
que comprovi la suma de dos nombres. - 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
- Crea una classe de test anomenada
StringUtilsTest
. - Afegeix un mètode de test anomenat
testIsEmpty
que comprovi si una cadena està buida. - 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
-
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. -
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.
Curs de JUnit
Mòdul 1: Introducció a JUnit
Mòdul 2: Anotacions Bàsiques de JUnit
- Entenent @Test
- Utilitzant @Before i @After
- Utilitzant @BeforeClass i @AfterClass
- Ignorant Tests amb @Ignore
Mòdul 3: Assertions a JUnit
Mòdul 4: Tests Parametritzats
- Introducció als Tests Parametritzats
- Creant Tests Parametritzats
- Utilitzant @ParameterizedTest
- Tests Parametritzats Personalitzats
Mòdul 5: Suites de Test
Mòdul 6: Mocking amb JUnit
Mòdul 7: Funcions Avançades de JUnit
Mòdul 8: Millors Pràctiques i Consells
- Escrivint Tests Efectius
- Organitzant el Codi de Test
- Desenvolupament Guiat per Tests (TDD)
- Integració Contínua amb JUnit