Django es un marco de trabajo de alto nivel que facilita el desarrollo de aplicaciones web complejas. Parte de su atractivo es su sistema integrado de pruebas unitarias. Según la documentación oficial de Django, las pruebas unitarias permiten al desarrollador garantizar que su código funciona como debería en todas las circunstancias anticipadas (documentación oficial de Django).
Para empezar a hacer pruebas unitarias con Django, primero debes crear un archivo de pruebas en la carpeta de la aplicación. La convención es nombrarlo `tests.py`. Luego, dentro de este archivo, se crean clases que se derivan de `django.test.TestCase`, cada una de las cuales representa un conjunto de pruebas relacionado. Cada método dentro de esta clase que comienza con la palabra `test` es una prueba unitaria.
Un ejemplo de prueba unitaria viene dado a continuación de acuerdo con Django Software Foundation (n.d.):
```python
from django.test import TestCase
from myapp.models import Animal
class AnimalTestCase(TestCase): def setUp(self): Animal.objects.create(name=“lion”, sound=“roar”) Animal.objects.create(name=“cat”, sound=“meow”)
def test_animals_can_speak(self): “”“Animals that can speak are correctly identified”““ lion = Animal.objects.get(name=“lion”) cat = Animal.objects.get(name=“cat”) self.assertEqual(lion.speak(), ‘The lion says “roar”’) self.assertEqual(cat.speak(), ‘The cat says “meow”’) ```En este ejemplo, `setUp` es un método especial que se ejecuta antes de cada prueba unitaria. Aquí se configura el estado para las pruebas. En este caso, se crean algunos objetos Animal que se utilizan en las pruebas.
Una vez codificado el archivo de pruebas, se pueden ejecutar las pruebas con la instrucción `python manage.py test` en la línea de comandos. Django buscará todas las clases derivadas de `unittest.TestCase`, instanciará cada una de ellas y ejecutará los métodos que comienzan con `test` (Django Software Foundation, n.d.). Si tu prueba pasa, significa que el código que estás probando se comporta como esperabas.
Las pruebas unitarias son una herramienta esencial para cualquier desarrollador. Permiten segurarse que el código funciona según lo esperado y hacen más fácil el mantenimiento del código en el futuro ya que ayudan a prevenir la introducción de errores.
Referencias:
- Django Software Foundation. (n.d.). Testing in Django. https://docs.djangoproject.com/en/3.2/topics/testing/