Esos tres métodos tienen tres objetivos diferentes y específicos. El objetivo de las pruebas es proporcionar una verificación y validación claras de su código. Al utilizar el método más claro y específico posible, está haciendo que su prueba sea la prueba más pequeña posible, con el significado más claro y específico posible.
Esto ayuda porque agrega claridad: puede ver, específicamente, qué se supone que debe hacer una prueba en una naturaleza más declarativa, donde usar el mismo método para múltiples escenarios de prueba, que cada uno tiene un significado diferente, requiere una mayor comprensión del código en sí, en lugar de la naturaleza de la prueba.
En este caso, el tercero es el (único) apropiado para usar. Sin embargo, si tuviera esta situación, tendrá que utilizar uno diferente, por ejemplo:
Assert.IsTrue(myClass.MethodThatReturnsTrue());
se debe utilizar el método que proporciona la mayor claridad en cuanto a su objetivo - si usted está comprobando dos valores para la igualdad , use Assert.IsEqual
, si está verificando un booleano para verificar que es falso, use Assert.IsFalse
. Esto hace que los informes de error sean significativos y comprensibles.
IMO, esta es la respuesta mejor/más concisa que he visto hasta ahora. Falta la respuesta principal que da un mensaje de error más informativo. – Catskul
Los marcos de afirmación fluida están aumentando en popularidad precisamente porque aumentan la legibilidad. Ver, por ejemplo, los emparejadores de Hamit de JUNit (http://code.google.com/p/hamcrest/wiki/Tutorial) y el modelo de restricción de NUnit (http://www.nunit.org/index.php?p=constraintModel&r=2.4 .1). –