Junior — Middle
¿Cómo se puede garantizar la llamada a la fixture después de que finalice la ejecución de la prueba o script?
sobes.tech AI
Respuesta de la IA
Para garantizar la llamada a la función de limpieza después de que finalice la prueba o el script, generalmente se utilizan mecanismos de teardown o finalizadores, que aseguran la ejecución del código de limpieza independientemente del resultado de la prueba.
En los marcos de prueba populares, esto se implementa mediante métodos especiales o decoradores:
- En pytest se puede usar una fixture con el parámetro
yield:
import pytest
@pytest.fixture
def resource():
# configuración
res = acquire_resource()
yield res
# limpieza
release_resource(res)
- En unittest (Python), el método
tearDown()se llama después de cada prueba:
import unittest
class MyTest(unittest.TestCase):
def setUp(self):
self.res = acquire_resource()
def tearDown(self):
release_resource(self.res)
def test_something(self):
self.assertTrue(use_resource(self.res))
- En Java con JUnit, la anotación
@Aftero@AfterEach:
@After
public void tearDown() {
releaseResource();
}
De esta manera, la función de limpieza o recurso se libera en un bloque que se ejecuta garantizadamente después de la prueba, incluso si la prueba falla con un error.