Voy a citar una frase del libro Two Scoops of Django de Daniel y Audrey Roy Greenfeld:

Las pruebas ahorran dinero, empleos y vidas.

Two Scoops of Django de Daniel y Audrey Roy Greenfeld:

Hoy existe una gran variedad de pruebas que se pueden automatizar gracias al DevOps entre estas pruebas se encuentran las unitarias.

Estas pruebas son atómicas y básicamente prueban un método particular del software y comparan la salida con un valor esperado.

Estas pruebas también se pueden conocer como “pruebas de regresión”, las que básicamente consisten en pruebas que validen que las funcionalidades existentes no se rompan con las modificaciones en el código.

Una forma de crear una prueba unitaria en Django es heredar un objeto de la clase “TestCase”, por ejemplo tengo una App llamada “Calculos” y dentro de esta App tengo “metric.py” que contiene un método llamado “suma” y quiero probar que mi calculo de suma funcione correctamente.

metric.py

<code>def suma(lista):
	suma=0;
	for row in lista:
		suma+=row
	return suma</code>

Ahora quiero crear una prueba unitaria para mi calculo de suma.

Primero se recomienda crear un árbol de directorios especial para las pruebas unitarias, por ejemplo, en el directorio root del proyecto crear una carpeta llamada test, en donde dejaremos todas las pruebas unitarias que programemos.

los “.py” que programemos deben tener al inicio del nombre el apodo test_*.py

test_suma.py

<code>from django.test import TestCase
from applications.calculos.metric import *


class CalculosTestCase(TestCase):
	def setUp(self):
	
		self.lista_valores=[1,2,3,4,5]


	def test_suma(self):
		resultado=suma(self.lista_valores)
		self.assertEqual(resultado, 15)	</code>

para correr las pruebas se debe ejecutar el comando:

<code> python manage.py test tests</code>

Fuente: http://aprendedjango.blogspot.com/2014/01/pruebas-unitarias-django.html