Tengo algunos casos en los que no me importa qué excepción se produce (siempre que se produzca alguna excepción). Por desgracia,Ignorar excepciones en xUnit.net
Assert.Throws<Exception>(someDelegate);
no pasa a menos que exactamente se inicia una instancia de Exception
(por lo que no es una instancia de una clase derivada). Sé que puedo obtener el comportamiento que quiero con
Exception exception = Record.Exception(someDelegate);
Assert.NotNull(exception);
pero no se lee correctamente. ¿Me estoy perdiendo algo en xUnit que tiene el comportamiento que quiero? Aquí hay dos pruebas que indican lo que quiero decir:
[Fact]
public void Throws_exception_and_passes() {
Exception exception = Record.Exception(
() => { throw new InvalidOperationException(); }
);
Assert.NotNull(exception);
}
[Fact]
public void Throws_exception_and_fails() {
Assert.Throws<Exception>(
() => { throw new InvalidOperationException(); }
);
}
De acuerdo completamente con el texto. Solo quería agregar que [@Jon Hanna 'respuesta] (http://stackoverflow.com/a/32468935/11635) detalla el ahora integrado' ThrowsAny 'que implementa el comportamiento deseado del OP –
El enlace está roto. xUnit se ha movido a github – mortb