Pruebas de Registro de Transacciones en Cuentas Bancarias
Clase 6 de 20 • Curso de Unit Testing en Python
Resumen
El método teardown
es esencial para asegurar que nuestras pruebas no interfieran entre sí, y se usa para limpiar cualquier recurso temporal al final de cada prueba. En este caso, lo hemos aplicado a nuestra cuenta bancaria, donde se registra un log cada vez que se realiza una acción. Vamos a explorar cómo implementarlo correctamente y agregar funcionalidades de logging a nuestra cuenta de banco.
¿Qué es el método teardown y cuándo lo usamos?
El método teardown
se ejecuta al final de cada prueba, y es utilizado para limpiar recursos como archivos temporales o cerrar conexiones. En este caso, lo usamos para eliminar el archivo de logs que se genera durante nuestras pruebas de la cuenta bancaria. De esta manera, cada prueba se ejecuta en un entorno limpio, sin interferencias de pruebas anteriores.
¿Cómo agregamos logging a la cuenta de banco?
Añadimos una funcionalidad de logging en el método init
, el cual se ejecuta cada vez que se crea una instancia de nuestra clase BankAccount
. El log incluye eventos como la creación de la cuenta, la consulta de saldo, y cuando se realizan depósitos o retiros. Esto se realiza a través del método logTransaction
, que escribe el mensaje en un archivo de texto.
- Se define un archivo de log (
logFile
) al crear la cuenta. - Cada vez que se realiza una transacción o se consulta el saldo, se agrega una línea al archivo.
- Para asegurar que el archivo de log se genera correctamente, creamos pruebas automatizadas.
¿Cómo validamos la existencia del archivo de log?
En nuestras pruebas, verificamos si el archivo de log se crea exitosamente. Utilizamos la función os.path.exists
para validar su existencia y asegurarnos de que nuestras pruebas están funcionando correctamente.
¿Cómo usamos el teardown para limpiar archivos?
El teardown
nos permite eliminar el archivo de log después de cada prueba para que no interfiera con otras. Implementamos una función que, si el archivo existe, lo borra utilizando os.remove
. Esto asegura que las pruebas se ejecutan en un entorno limpio y los logs no se acumulan entre pruebas.
¿Cómo probamos que los logs contienen la información correcta?
Además de verificar que el archivo existe, es fundamental asegurarnos de que el contenido del archivo sea correcto. Para ello, creamos un método que cuenta las líneas del archivo (countLines
). Luego, en nuestras pruebas, validamos que el número de líneas corresponde al número de transacciones realizadas.
- Contamos las líneas después de crear la cuenta (debe haber una línea).
- Hacemos un depósito y volvemos a contar las líneas (debe haber dos líneas).
- Si no limpiáramos el archivo con
teardown
, el número de líneas sería incorrecto.
¿Cómo crear una nueva funcionalidad de logging para transferencias fallidas?
El siguiente reto es agregar una funcionalidad para registrar un log cuando alguien intente hacer una transferencia sin saldo disponible. El log debe incluir un mensaje indicando la falta de fondos, y también se deben crear pruebas que validen que este log se genera correctamente.
- Se debe registrar el intento fallido en el archivo de log.
- Crear una prueba para asegurarse de que el mensaje “No tiene saldo disponible” aparece en el log.
- Utilizar
teardown
para limpiar el archivo al finalizar cada prueba.