Para dar un ejemplo ligeramente artificial, digamos que quiero probar que una función devuelve dos números y que el primero es más pequeño que el segundo:
def test_length():
result = my_function()
assert len(result) == 2
def test_order()
a, b = my_function()
assert a < b
Aquí, si test_lengthfalla, test_ordertambién fallará. ¿Es una buena práctica escribir test_lengthu omitirlo?
EDITAR: tenga en cuenta que en esta situación, ambas pruebas son en su mayoría independientes entre sí, cada una se puede ejecutar de forma aislada, o se pueden ejecutar en orden inverso, esto no importa. Entonces ninguna de estas preguntas anteriores
- ¿Cómo debo probar la funcionalidad de una función que usa otras funciones en ella?
- ¿Necesito una prueba unitaria si ya tengo una prueba de integración?
- ¿Cómo estructurar pruebas donde una prueba es la configuración de otra prueba?
- Cómo gestionar la dependencia exitosa entre pruebas unitarias
es un duplicado del anterior.
Allama By devuelve el mismo resultado, debería probar ambas Ay B". Esto es más sobre las pruebas que se superponen en lugar de las funciones bajo prueba. (Aunque es confuso ya que actualmente están nombrados).
lambda: type('', (), {'__len__': lambda self: 2})()pasará la primera, pero no la segunda.