115

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.

2
  • 4
    Duplicate? stackoverflow.com/questions/1174702/… (I think the provided answers are not directly related to which testing framework that is used) Commented Jan 13, 2010 at 22:16
  • 1
    yes it is - and the answer will be the same I think. Commented Jan 13, 2010 at 22:48

1 Answer 1

218

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.

Sign up to request clarification or add additional context in comments.

3 Comments

Note that the Task return type is mandatory - void won't work (at least not on VS2013 update 4)
(It will never work, since void-returning async methods cannot be awaited)
@RichardSzalay: it can be made to work, see here how NUnit does it: stackoverflow.com/questions/15031681/…

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.