Uso de la marca parametrize
Se pueden utilizar las marcas para realizar múltiples pruebas sobre un determinado método, para eso utilizamos la marca parametrize:
- @pytest.mark.parametrize()
En el siguiente ejemplo, vamos a tener un test, el cual vamos a evaluar para diferentes par de valores:
1 2 3 4 5 6 7 8 | import pytest @pytest.mark.parametrize("test_input,expected", [("3+5", 8), ("2+4", 6), ("6*9", 42)]) def test_eval(test_input, expected): assert eval(test_input) == expected |
En este caso, le estamos diciendo a nuestro test, que realice tres pruebas:
- Que evalue si 3 + 5 es igual a 8
- Que evalue si 2 + 4 es igual a 6 y
- Que evalue si 6 * 9 es igual a 42
1 | > pytest |
Obtendremos que dos de los test funcionaron y el tercero fallo, ya que espera que la multiplicación de 6 y 9 de como resultado 54.
De esta forma, mediante la marca parametrize de Pytest puedo realizar pruebas para varios conjuntos de valores sobre un mismo test.