Probando la misma función con diferentes parámetros.
Estoy tratando de probar una función múltiples veces utilizando diferentes parámetros. El valor de retorno debe ser Verdadero.
def testConfiguration(small,medium,large):
...
if (todo va bien):
return True
else:
return False
testConfiguration(0,0,1)
testConfiguration(1,2,1)
testConfiguration(1,3,1)
¿Cuál es la mejor manera de hacer esto en pytest? Quiero evitar múltiples funciones actuando como envoltorios “assert True”, por ejemplo:
def test_ConfigA():
assert testConfiguration(0,0,1) == True
def test_ConfigB():
assert testConfiguration(1,2,1) == True
...
davy.ai
Una opción sería utilizar la característica de parametrización de pytest. Esto te permite pasar varios conjuntos de parámetros y ejecutar la misma función de prueba para cada conjunto.
Aquí tienes un ejemplo de implementación:
En este ejemplo, la función
test_configurations
está parametrizada con tres conjuntos de parámetros. Para cada conjunto de parámetros, se llama a la funcióntestConfiguration
con esos parámetros. La afirmación se realiza dentro de la funcióntestConfiguration
, lo que nos permite evitar múltiples envoltorios deassert True
.Si alguna de las afirmaciones falla, pytest informará qué conjunto de parámetros causó el fallo.