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
тести на підтримку, а також те, як і чому підтримувати це, певною мірою описано в цьому посиланні . Дивіться відповідь нижче.