Pruebas unitarias 21-22

De Wiki de EGC
Saltar a: navegación, buscar

Las pruebas unitarias están destinadas a identificar errores en partes pequeñas de código con la idea de maximizar la cobertura de nuestros tests. Recordar que la función de cobertura de las pruebas es algo que debemos decidir. Los tests de cada módulo se implementan en archivos python que comienzan por test*

Ejercicio 1

Lo primero que vamos a hacer es crear un nuevo test para el modulo de autenticación de decide donde en vez de probar la aplicación, comprobaremos que la suma de dos enteros es correcta. Nota esta prueba es para familiarizarnos con el framework. Aquí no estamos probando nuestra app Django.


from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
 """
 Tests that 1 + 1 always equals 2.
 """
 self.assertEqual(1 + 1, 2)

Para ejecutar los tests deberemos ejecutar ./manage.py test authentication.

Ejercicio 2

Para probar la cobertura de nuestras pruebas usaremos la aplicación coverage:

$ pip install coverage

Para lanzar el analisis de cobertura:

coverage run --source . ./manage.py test -v 2

Añadimos la opción "--source ." para sólo analizar nuestro código de decide pero no las bibliotecas incluidas. Añadimos la opción "-v 2" para hacer la salida más verbosa, es decir, ver más información sobre los tests. Podemos añadir la opción "--keepdb" para evitar que la base de datos de prueba se borre al finalizar. Entre otras cosas, eso evitará que se tenga que crear la base de datos la próxima vez que vayan a correrse los test.

coverage html

Finalmente podemos ver el contenido del html abriendo "decide/htmlcov/index.html"

Ejercicio 3 Pensar los tests que necesitaremos para nuestro proyecto decide.