[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