Más específicamente, ¿cuáles son los casos de uso para cada uno?
Lo que he entendido hasta ahora:
Según lo que mencioné anteriormente, parece que setUpTestData se encuentra en el área entre setUpClass y setUp. ¿Por qué necesitamos un método de nivel de clase para setuUpTestData mientras que setUpClass
o setUp
o una combinación de ambos podrían lograr el mismo efecto?
EDITAR: Actualización/Corrección después del comentario de Alasdair
setUpClass
se utiliza para realizar la inicialización/configuración de toda la clase (por ejemplo, crear conexiones, cargar controladores web). Cuando usa setUpClass
, por ejemplo, para abrir una conexión/sesión de base de datos, puede usar tearDownClass
para cerrarlas.setUpClass
se llama una vez para TestCase antes de ejecutar cualquiera de las pruebas. De manera similar, se llama tearDownClass
después de que se hayan ejecutado todas las pruebas.Nota de la documentación:
SimpleTestCase y sus subclases (p. ej., TestCase, ...) se basan en setUpClass() y tearDownClass() para realizar algunas inicializaciones en toda la clase (p. ej., anular configuraciones). Si necesita anular esos métodos, no olvide llamar a la súper implementación:
setUpTestData
se utiliza para crear datos de prueba iniciales por TestCase. Este método es llamado por TestCase.setUpClass() ( src )setUpTestData
se llama una vez para TestCase, como se explica en la documentación . En caso de que las bases de datos no admitan transacciones, se llamará a setUpTestData
antes de cada ejecución de prueba (gracias @Alasdair por corregirme)setUp
antes de cada ejecución de prueba y se debe usar para preparar el conjunto de datos de prueba para cada ejecución de prueba. El uso de setUpTestData
permite mejorar el rendimiento de las pruebas; tenga en cuenta que los cambios en estos datos en las pruebas persistirán entre diferentes ejecuciones de pruebas. Si necesita recargarse, puede hacerlo desde el método de setUp
. Si la base de datos utilizada para ejecutar pruebas no admite transacciones, se niega la mejora del rendimiento (ya que se llamará a setUpTestData
antes de cada ejecución de prueba)