Testing Python
Testing
El testing implican la ejecución de un componente de software o componente del sistema para evaluar una o más propiedades de interés. En general, estas propiedades indican hasta qué punto el componente o sistema bajo prueba:
- cumple los requisitos que guiaron su diseño y desarrollo,
- responde correctamente a todo tipo de entradas,
- realiza sus funciones dentro de un tiempo aceptable
- se puede instalar y ejecutar en sus entornos previstos
- logra el resultado general que desean sus partes interesadas.
Niveles de Testing
- Unit testing
- Integration testing
- System testing
- Operational acceptance testing *
unittest
unittest
unittest es el framework en python que nos permite hacer pruebas soporta:
- fixtures
- test cases
-
test suite
-
test runner
unittest
fixtures
representa la prepacion necesaria para ejecutar una o mas pruebas. por ejemplo crear datos, configurar settings, etc
Los ejemplos mas conocidos de fixtures es el metodo
setUp
unittest
test case
representa una unidad de prueba, comprueba una respuesta especifica para un conjunto de entradas
test Suit
representa el conjuto de test case de una aplicacion
unittest
test runner
orquestador de la ejecucion de pruebas
unittest
test runner
orquestador de la ejecucion de pruebas
unittest
TestCase
Clase Base para genera los test en python
setUp
tearDown
addCleanup
setUpClass
tearDownClass
skipTest
assert*
Unit Testing
Unit Testing
Las pruebas unitarias son pruebas que verifican la corrección de piezas individuales de código, como las funciones.
Unit Testing Python
import unittest
def sum_values(*args):
val = 0
for i in args:
val += i
return val
class TestFunction(unittest.TestCase):
def test_function(self):
self.assertEqual(10, sum_values(1,2,3,4))
if __name__ == '__main__':
unittest.main()
mock
mock
- patch
- Mock
- MagicMock
Mock
Esto permite que los objetos simulados reemplacen contenedores u otros objetos que implementan protocolos de Python.
- spec
- return_value
- side_effect
Mock
- called
- call_count
- return_value
- side_effect
Patch
Patch es un metodo que nos permite reemplazar el compotamiento de de funciones, metodos y clases, entre otros
- patch.object
- patch.dict
- patch.multiple
- patch.start
- patch.stop
- patch.stopall *
Django Testing
Django Testing
- SimpleTestCase
- TransactionTestCase
- TestCase
SimpleTestCase
Basicamente Cualquier Cosa que no use el ORM
TransactionTestCase
Reset a un estado conocido de la DB
Fixtures
databases
mas assert*
TestCase
Atomico
setUpClassData
Testing Python
By Leonardo Fabio Orozco Padilla
Testing Python
- 754