Při psaní unit testů pro Windows Store aplikaci jsem zapisoval test, který kontroloval, zda kód vyvolá očekávanou výjimku. Pro non-WinRT projekty je možné použít kód následujícího typu:
[TestMethod] [ExpectedException(typeof(DivideByZeroException))] public async Task Test() { int result = ( new Calc() ).Divide( 3, 0 ); }
Z Unit Test Library pro WinRT byl ale atribut ExpectedException odebrán. Byl však nahrazen mnohem praktičtější a užitečnější metodou Assert.ThrowsException :
[TestMethod] public async Task Test() { Assert.ThrowsException<DivideByZeroException>( () => { new Calc() ).Divide( 3, 0 );} ); }
Jako typový parametr stačí uvést typ očekávané výjimky a jako argument použijeme lambda expression (či instanci Action ), která obsahuje kód, jež má výjimku vyvolat.