How does one test async code using MSTest

I'm writing some super simple async code. Just saving a file off-thread.

I'd like to test this code using the MSTest unit test framework in Microsoft Visual Studio Team System 2008.

How do I do this?

I'd like to simple block the test method until the method returns. I can imagine some ways to do this, but I'm blown away there aren't any best practices or helper classes around this.

I see a lot for Silverlight, but nothing generic.


Solution 1:

Visual studio 2012 (previously known as "Visual Studio 11") introduced support for async tests. It looks like this:

[TestMethod]
public async Task FooTest()
{
   var result = await SomeAsyncOperation();
   Assert.IsTrue(someCondition);
}

As noted in the comments, the Task return type is important. It won't work if you declare the method as returning void.