async void
विज़ुअल स्टूडियो 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
परीक्षण विधि की आवश्यकता है, मैं सिर्फ उत्सुक हूं। विजुअल स्टूडियो 2012 न तो कोई चेतावनी देता है और न ही त्रुटि जब आप एक async void
परीक्षण विधि का निर्माण करते हैं, भले ही वह चलाने में सक्षम न हो ...
async void
परीक्षण करता है और कैसे और क्यों समर्थन करता है इस लिंक में कुछ हद तक विस्तृत है । देखें इस सवाल का जवाब नीचे।