Tengo un fragmento de código que se parece a esto:
function bool PassesBusinessRules()
{
bool meetsBusinessRules = false;
if (PassesBusinessRule1
&& PassesBusinessRule2
&& PassesBusinessRule3)
{
meetsBusinessRules= true;
}
return meetsBusinessRules;
}
Creo que debería haber cuatro pruebas unitarias para esta función en particular. Tres para probar cada una de las condiciones en la declaración if y asegurarse de que devuelva falso. Y otra prueba que asegura que la función devuelve verdadero.
Pregunta: ¿Debería haber diez pruebas unitarias en su lugar? Nueve que verifican cada una de las posibles rutas de falla. ES DECIR:
- Falso Falso Falso
- Falso Falso Verdadero
- Falso Verdadero Falso
Y así sucesivamente para cada combinación posible.
Creo que es exagerado, pero algunos de los otros miembros de mi equipo no. La forma en que lo veo es que si BusinessRule1 falla, siempre debe devolver falso, no importa si se verificó primero o último.