2010-01-11 10 views

Respuesta

10

encontrado una manera bastante clara (pero por favor me deje saber si alguien tiene una aún mejor!)

var e = Assert.Throws<ArgumentException>(() => dog.BarkAt(deafDog)); 
Assert.That(e.ParamName, Is.EqualTo("otherDog")); 

Facepalm ...

+0

Este es mi enfoque preferido. –

+1

Assert.IsTrue (e.ParamName == "otherDog")? :) – oldUser

+2

@alexm: Pero usar eso crearía un mensaje menos obvio cuando falla la prueba: * La longitud esperada de la cadena 4 era 7. Las cadenas difieren en el índice 0. Se esperaba: "otherDog" Pero fue: "somethingElse" * vs * Se esperaba : Cierto, pero fue: falso *. ;) – Svish

4

Si quieres hacer algo más con la excepción de que sólo afirman que se lanza, a continuación, Assert.Throws realidad devuelve la excepción y se puede hacer esto:

var exception = Assert.Throws<ArgumentException>(() => dog.BarkAt(deafDog)); 
// Assert something else about the exception 
+0

Ese mensaje es ju ¿El mensaje que se mostrará si la afirmación falla? – Svish

+0

NUnit, 'Assert.Throws ' El método de aserción devuelve la excepción. –

+0

@ João - gracias, respuesta editada. –

Cuestiones relacionadas