[TestFixture] class ThrowTest { [Test] public async void Task_should_throw() { await TestTask().ShouldThrow(); } private static async Task TestTask() { throw new NotImplementedException(); } } static class AsyncTaskAssertExtensions { public static async Task ShouldThrow (this Task task, string because = null) where TException : Exception { try { await task; Assert.Fail(because ?? $"The specified task was expected to throw '{typeof(TException).Name}', but no exception occured."); } catch (TException) { } } }
Mittwoch, 10. Juni 2015
"To throw or not to throw": Asserting exceptions on tasks with async/await
For testing exceptional behaviour i like using FluentAssertions Invoking extensions. However, i noticed that using this with async/await seems not to be supported and requires unelegant rewriting (Please, prove me wrong on this). However, using C# 6 await in try-catch this is now very simple to do:
Abonnieren
Kommentare zum Post (Atom)
Keine Kommentare:
Kommentar veröffentlichen