Si hacemos unEn MS C# Unit Testing, ¿cómo afirmar que se produjo una ArgumentException?
throw new ArgumentException("Cannot do that");
¿Cómo afirmar que esto ocurrió con ArgumentException
Framework de Pruebas de Microsoft?
Si hacemos unEn MS C# Unit Testing, ¿cómo afirmar que se produjo una ArgumentException?
throw new ArgumentException("Cannot do that");
¿Cómo afirmar que esto ocurrió con ArgumentException
Framework de Pruebas de Microsoft?
Usted puede decorar su unidad de prueba con el atributo [ExpectedException]
:
[ExpectedException(typeof(ArgumentException))]
[TestMethod]
public void Foo()
{
throw new ArgumentException("foo");
}
No le pida a pesar de afirmar el mensaje de excepción :-)
Por lo tanto, ¿por qué las pruebas de unidades no deberían probar más de una cosa? ¿Qué sucede si haces un Try/Catch y luego procesas la excepción atrapada con un Assert? –
Bueno, por supuesto que podrías hacer eso, pero en este caso escribirás, déjame contar, 7 líneas más de código (probablemente un poco menos si pones el '{' en la misma línea), y cada línea de código tu escribes está ocultando un error potencial y disminuyendo la legibilidad del código, entonces ¿por qué hacerlo cuando puedes evitarlo ?-) –
posible duplicado [C#: ¿Cómo uso Assert (Unidad Prueba) para verificar que se ha lanzado una excepción?] (Http://stackoverflow.com/q/933613/299327). –