Diferencia entre revisiones de «Pruebas unitarias»
(Página creada con «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...») |
|||
(No se muestran 2 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
− | 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. | + | 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''' | |
− | |||
− | 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. | 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. | ||
Línea 21: | Línea 19: | ||
Para ejecutar los tests deberemos ejecutar ./manage.py test authentication. | Para ejecutar los tests deberemos ejecutar ./manage.py test authentication. | ||
− | Ejercicio 2 | + | '''Ejercicio 2''' |
+ | |||
+ | Para probar la cobertura de nuestras pruebas usaremos la aplicación coverage: | ||
+ | |||
+ | <source> | ||
+ | $ pip install coverage | ||
+ | </source> | ||
+ | |||
+ | Para lanzar el analisis de cobertura: | ||
+ | <source> | ||
+ | coverage run ./manage.py test -v 2 | ||
+ | </source> | ||
+ | |||
+ | o en el caso de ejecutarlas dentro de docker: | ||
+ | <source> | ||
+ | $ docker exec -ti decide_web coverage run ./manage.py test -v 2 | ||
+ | </source> | ||
+ | |||
+ | Tras esto deberemos generar el informe en html: | ||
+ | |||
+ | <source> | ||
+ | coverage html | ||
+ | </source> | ||
+ | |||
+ | o en el caso de ejecutarlas dentro de docker: | ||
+ | <source> | ||
+ | $ docker exec -ti decide_web coverage html | ||
+ | </source> | ||
+ | |||
+ | |||
+ | Finalmente podemos ver el contenido del html abriendo "decide/htmlcov/index.html" | ||
+ | o si queremos abrirlo dentro del docker: | ||
+ | |||
+ | <source> | ||
+ | #opcionalmente | ||
+ | xhost + | ||
+ | |||
+ | sudo docker exec -ti decide_web firefox file:///app/decide/htmlcov/index.html | ||
+ | </source> | ||
+ | '''Ejercicio 3''' | ||
Pensar los tests que necesitaremos para nuestro proyecto decide. | Pensar los tests que necesitaremos para nuestro proyecto decide. |
Revisión actual del 09:31 18 nov 2019
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 ./manage.py test -v 2
o en el caso de ejecutarlas dentro de docker:
$ docker exec -ti decide_web coverage run ./manage.py test -v 2
Tras esto deberemos generar el informe en html:
coverage html
o en el caso de ejecutarlas dentro de docker:
$ docker exec -ti decide_web coverage html
Finalmente podemos ver el contenido del html abriendo "decide/htmlcov/index.html"
o si queremos abrirlo dentro del docker:
#opcionalmente
xhost +
sudo docker exec -ti decide_web firefox file:///app/decide/htmlcov/index.html
Ejercicio 3 Pensar los tests que necesitaremos para nuestro proyecto decide.