async void не можна запускати модульні тести в Visual Studio 2012:
[TestClass]
public class MyTestClass
{
[TestMethod]
public async void InvisibleMyTestMethod()
{
await Task.Delay(1000);
Assert.IsTrue(true);
}
}
Якщо я хочу мати асинхронний модульний тест, метод тесту повинен повернути Завдання:
[TestMethod]
public async Task VisibleMyTestMethod()
{
await Task.Delay(1000);
Assert.IsTrue(true);
}
Чому це так? Не те, що мені абсолютно необхідний async voidметод тестування, мені просто цікаво. Visual Studio 2012 не видає жодного попередження та помилок під час створення async voidметоду тестування, хоча його неможливо запустити ...
async voidтести на підтримку, а також те, як і чому підтримувати це, певною мірою описано в цьому посиланні . Дивіться відповідь нижче.