Question

: Comprar un regalo Unit Test

Answers

GPT-4o mini
Claro, puedo ayudarte a crear un "Unit Test" para una función que simule la compra de un regalo. Primero, definamos una función simple que represente la lógica de la compra. Luego, escribiré un test unitario utilizando un framework de pruebas, como `unittest` en Python.

### Ejemplo de función de compra de regalo

Supongamos que tenemos una clase `Regalo` y una función que se encarga de comprar el regalo, verificando si hay suficiente dinero.

```python
class Regalo:
def __init__(self, nombre, precio):
self.nombre = nombre
self.precio = precio

def comprar_regalo(regalo, dinero):
if dinero >= regalo.precio:
return True # Compra exitosa
else:
return False # Fondos insuficientes
```

### Test Unitario

Ahora, vamos a implementar un test unitario para esta funcionalidad:

```python
import unittest

class TestComprarRegalo(unittest.TestCase):
def setUp(self):
self.regalo1 = Regalo("Juguete", 20)
self.regalo2 = Regalo("Libro", 15)

def test_compra_exitosa(self):
resultado = comprar_regalo(self.regalo1, 25)
self.assertTrue(resultado)

def test_fondos_insuficientes(self):
resultado = comprar_regalo(self.regalo2, 10)
self.assertFalse(resultado)

def test_compra_exacta(self):
resultado = comprar_regalo(self.regalo1, 20)
self.assertTrue(resultado)

if __name__ == '__main__':
unittest.main()
```

### Explicación

1. **Regalo**: Definimos un objeto `Regalo` con nombre y precio.
2. **comprar_regalo**: La función que llama a esta lógica. Retorna `True` si hay suficiente dinero y `False` en caso contrario.
3. **TestComprarRegalo**: Aquí están diseñados los tests para verificar que la función funciona correctamente:
- `test_compra_exitosa`: Verifica que la compra sea exitosa con suficiente dinero.
- `test_fondos_insuficientes`: Verifica que la compra no se realice si no hay suficientes fondos.
- `test_compra_exacta`: Verifica que la compra se realice si el dinero es justo el valor del regalo.

### Ejecución

Para ejecutar los tests, simplemente corre el script en un entorno donde tengas Python y el módulo `unittest`. Si todo está configurado correctamente, verás los resultados que confirman si los tests han pasado o no.

Si necesitas más funcionalidades o pruebas adicionales, házmelo saber.

Related Questions