Pruebas Unitarias con Método Setup en Python
Clase 5 de 20 • Curso de Unit Testing en Python
Resumen
El uso del método setup
en los tests permite simplificar y evitar la duplicación de código en las pruebas. Al iniciar un test, setup
se ejecuta automáticamente, preparando el entorno para cada prueba de forma eficiente. En este caso, pasamos de un proyecto de calculadora a uno de una cuenta bancaria, y veremos cómo implementar pruebas unitarias para depósitos, retiros y consultas de saldo utilizando setup
para optimizar el código.
¿Cómo implementar pruebas para depósitos en una cuenta bancaria?
Primero, se crea la clase de test donde se probarán los métodos de una cuenta bancaria. Para hacer un depósito, se debe instanciar una cuenta con un saldo inicial, realizar el depósito y luego validar que el saldo ha cambiado correctamente.
Pasos:
- Crear el archivo
test_bank_account.py
. - Instanciar una cuenta con saldo inicial.
- Probar que el método de depósito ajusta el saldo correctamente.
¿Cómo optimizar las pruebas con el método setup?
El método setup
evita la creación repetitiva de instancias en cada test. Para lograr esto:
- Se crea una instancia de cuenta en
setup
. - La cuenta creada se comparte entre todas las pruebas usando
self
.
Esto simplifica las pruebas al evitar duplicar el código de instanciación en cada método de test.
¿Cómo ejecutar las pruebas de retiro y consulta de saldo?
Para las pruebas de retiro y consulta de saldo:
- El método
withdraw
debe restar la cantidad del saldo y validar que el resultado sea correcto. - El método
get_balance
simplemente valida que el saldo actual coincida con lo esperado.
Estas pruebas se benefician del uso de setup
, ya que reutilizan la misma instancia de cuenta creada para cada prueba.
¿Cómo ejecutar pruebas con salida más detallada?
Al ejecutar las pruebas, es útil utilizar el comando con la opción -b
para obtener una salida más detallada y visualizar exactamente qué pruebas se están ejecutando y dónde están ubicadas en el código. Esto ayuda a depurar y tener un mejor control sobre el flujo de las pruebas.
¿Cómo crear pruebas para una nueva funcionalidad de transferencia?
La tarea final consiste en agregar un método de transferencia a la clase BankAccount
, el cual debe:
- Permitir transferir saldo entre cuentas.
- Levantar una excepción si el saldo no es suficiente para realizar la transferencia.
Luego, se deben crear dos pruebas unitarias:
- Validar que la transferencia se realiza correctamente.
- Validar que se lanza una excepción cuando no hay saldo suficiente para completar la transferencia.