Soy nuevo en las pruebas en python y en las pruebas en general y busco una manera de escribir una función de prueba y ejecutar esta función varias veces contra diferentes elementos de una tupla.
Más precisamente, hay una tupla que consta de diferentes consultas a la base de datos que todos quiero probar . Los resultados de todas esas consultas comparten el mismo patrón, así que supongo que es razonable reutilizar el código que prueba esos resultados.
Hasta donde yo sé, se considera una mala práctica pasar argumentos a una prueba unitaria que también parece razonable. Esto me deja un poco despistado. Escribir una función para cada consulta individual sería difícil de mantener, porque constantemente se agregan nuevas consultas a esta tupla .
También me gustaría obtener resultados detallados (FAIL o ok) para cada elemento de la tupla a través de python manage.py test myapp -v=2 , por lo tanto, poner la tupla completa en una ejecución de una función también parece un mal enfoque.
Como sugiere el titular, mi código vive en un entorno django.
Estaría feliz de usar el marco de prueba de django para poder ejecutar esta prueba usando python manage.py test .
¿Cuál sería un buen enfoque para implementar esta prueba?
Estas a veces se denominan pruebas parametrizadas y nose-parameterized es un increíble paquete de Python que lo admite.
Le permite definir una sola función de prueba y proporcionar una colección de parámetros. Creará dinámicamente una función de prueba de referencia con nombre para cada parámetro proporcionado.
¿Qué tan grande es la tupla? ¿Es realmente necesario probar cada consulta en la tupla? Si comparten el mismo patrón, ¿es suficiente tomar solo un subconjunto de las consultas?