Pruebas Unitarias
Pruebas Unitarias
las pruebas unitarias sons una forma de comprobar el correcto funcionamiento de un módulo de código, o conjunto de estos
Objetivo
El objecto de estas es escribir casos de prueba para cada función no trivial o método en el módulo, de forma que cada caso sea independiente del resto.
Características
- Automatizable
- Completas
- Repetibles o Reutilizables
- Independientes
- Profesionales
Ventajas
- Menos errores en etapa temprana
- Simplifica la integración
- Documenta el código
- Facilita el cambio (Refactorización)
- Profesionales
Unittest
unittest es el framework para pruebas python basado en JUnit, soporta:
- Automatización de pruebas
- Setup compartidos
- Colección de pruebas
- Independencia del framework de reporte de pruebas.
Unittest
Para crear una Clase para realizar pruebas en este framework es necesario lo siguiente
- Toda clase de prueba debe heredar de unittest.TestCase
- setUp es el método para realizar las configuraciones iniciales antes de cada prueba, este método se ejecuta antes de cada prueba
- tearDown es el método para eliminar las configuraciones iniciales, después de cada prueba
Unittest
https://wiki.python.org/moin/PythonTestingToolsTaxonomy
http://docs.python-guide.org/en/latest/writing/tests/
Unit Test en Django
Las pruebas unitarias de Django usan el módulo de la estándar de pruebas de Python: unittest.
Django implementa clases Varias clases para la realización de pruebas.
SimpleTestCase
Es la Clase mas básica para pruebas en Django, incluye:
Client, Modificar las configuraciones (settings), Verificar redirecciones http de las vistas, Fragmentos de documentos (html, xml, json), Testeo de Forms
No soporta:
ORM, fixtures, omitir pruebas de acuerdo a características de la base de datos, ademas de otras pruebas mas especializadas
TransactionTestCase y TestCase
diferencias:
- Transaction devuelve la DB a su estado orginial
- TestCase por cada prueba hace un rollback
Assert en python
https://docs.python.org/2/library/unittest.html#unittest.TestCase.assertEqual
Assert en django
https://docs.djangoproject.com/en/1.7/topics/testing/tools/#assertions
https://docs.djangoproject.com/en/1.7/topics/testing/tools/#skipping-tests
fixtures
https://docs.djangoproject.com/en/1.7/topics/testing/tools/#django.test.TransactionTestCase.fixtures
https://docs.djangoproject.com/en/1.7/ref/django-admin/#django-admin-dumpdata
Client
https://docs.djangoproject.com/en/1.7/topics/testing/tools/#the-test-client
deck
By Leonardo Fabio Orozco Padilla
deck
- 920