-
Notifications
You must be signed in to change notification settings - Fork 157
Assert.ThrowsAsync
Chris edited this page Sep 5, 2016
·
5 revisions
The Assert.ThrowsAsync is the async equivalent to Assert.Throws for asynchronous code. See Assert.Throws for more information.
Exception Assert.ThrowsAsync( Type expectedExceptionType, AsyncTestDelegate code );
Exception Assert.ThrowsAsync( Type expectedExceptionType, AsyncTestDelegate code,
string message, params object[] parms);
Exception Assert.ThrowsAsync( IResolveConstraint constraint, AsyncTestDelegate code );
Exception Assert.ThrowsAsync( IResolveConstraint constraint, AsyncTestDelegate code,
string message, params object[] parms);
TActual Assert.ThrowsAsync<TActual>( AsyncTestDelegate code );
TActual Assert.ThrowsAsync<TActual>( AsyncTestDelegate code,
string message, params object[] parms);
In the above code AsyncTestDelegate is a delegate of the form Task AsyncTestDelegate(), which is used to execute the code in question. This will likely be a lambda expression.
The following example shows the most common way of writing tests.
[TestFixture]
public class AssertThrowsTests
{
[Test]
public void Tests()
{
// Using a method as a delegate
Assert.ThrowsAsync<ArgumentException>(async () => await MethodThatThrows());
}
async Task MethodThatThrows()
{
await Task.Delay(100);
throw new ArgumentException();
}
}
This example shows use of the return value to perform additional verification of the exception. Note that you do not need to await the result.
[TestFixture]
public class UsingReturnValue
{
[Test]
public async Task TestException()
{
MyException ex = Assert.ThrowsAsync<MyException>(async () => await MethodThatThrows());
Assert.That( ex.Message, Is.EqualTo( "message" ) );
Assert.That( ex.MyParam, Is.EqualTo( 42 ) );
}
}
####See also...
Copyright (c) 2018 The NUnit Project - Licensed under CC BY-NC-SA 4.0
-
NUnit
-
Release Notes
-
License
- Getting Started
- Writing Tests
- Running Tests
- Extending NUnit
- Technical Notes
-
Release Notes
- NUnit Xamarin Runners
- VS Test Adapter
- VS Test Generator
- NUnit Analyzers