XUnit 1.9 recently shipped, featuring support for async tests:
[Test] public async Task MyAsyncUnitTest() { // ... setup code here ... var result = await CallMyAsyncApi(...); // ... assertions here ... }
Here’s how that looks using MbUnit:
public class AsyncTestAttribute : TestAttribute { /// <inheritdoc /> protected override void Execute(PatternTestInstanceState state) { var result = state.InvokeTestMethod(); var task = result as Task; if (task != null) task.Wait(); } }
Sweet! This’ll be in the next MbUnit/Gallio release (but only if you also reference MbUnit40.dll).