संभव डुप्लिकेट:
How do I test an async method with NUnit, eventually with another framework?मैं कैसे दावा कर सकता हूं कि एक सी # एसिंक विधि इकाई परीक्षण में अपवाद फेंकता है?
क्या मैं जानना चाहूंगा कि मैं कितना जोर कर सकते हैं कि एक अतुल्यकालिक विधि एक अपवाद फेंकता है, एक सी # इकाई परीक्षण में है? मैं विजुअल स्टूडियो 2012 में Microsoft.VisualStudio.TestTools.UnitTesting
के साथ एसिंक्रोनस यूनिट परीक्षण लिखने में सक्षम हूं, लेकिन यह पता नहीं लगाया गया है कि अपवादों का परीक्षण कैसे किया जाए। मुझे पता है कि xUnit.net इस तरह से एसिंक्रोनस परीक्षण विधियों का भी समर्थन करता है, हालांकि मैंने अभी तक उस ढांचे का प्रयास नहीं किया है।
मैं क्या मतलब का एक उदाहरण के लिए, निम्न कोड परीक्षण के अंतर्गत प्रणाली परिभाषित करता है:
using System;
using System.Threading.Tasks;
public class AsyncClass
{
public AsyncClass() { }
public Task<int> GetIntAsync()
{
throw new NotImplementedException();
}
}
यह कोड स्निपेट AsyncClass.GetIntAsync
के लिए एक परीक्षण TestGetIntAsync
परिभाषित करता है।
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Threading.Tasks;
[TestClass]
public class TestAsyncClass
{
[TestMethod]
public async Task TestGetIntAsync()
{
var obj = new AsyncClass();
// How do I assert that an exception is thrown?
var rslt = await obj.GetIntAsync();
}
}
, इस तरह के xUnit.net के रूप में दृश्य स्टूडियो से एक है, की तुलना में कुछ अन्य संबंधित इकाई परीक्षण ढांचे रोजगार यदि आवश्यक हो तो स्वतंत्र महसूस या: इस जहाँ मैं कैसे दावा है कि GetIntAsync
एक अपवाद फेंकता पूरा करने के लिए पर इनपुट की जरूरत है आप तर्क देंगे कि यह एक बेहतर विकल्प है।
@JonSkeet नहीं वास्तव में, यह विशेष रूप से अपवाद जाँच के बारे में है के रूप में। हालांकि अब मैं विजुअल स्टूडियो ढांचे के साथ कोई फर्क नहीं पड़ता। XUnit.net के लिए, हालांकि, मुझे अभी भी यकीन नहीं है कि यह कैसे करें। – aknuds1
@ जोन्स स्केट प्रारंभ में मैं सहमत हूं, लेकिन अब मैं नहीं करता हूं। यदि यह प्रश्न सही है कि माइक्रोसॉफ्ट के यूनिट परीक्षण पहले से ही एसिंक परीक्षणों का समर्थन करता है, तो उस अन्य प्रश्न का आपका उत्तर वास्तव में यहां लागू नहीं होता है। एकमात्र समस्या इस तरह से परीक्षण को फिर से लिख रही है कि यह अपवाद के लिए परीक्षण करता है। – hvd
@hvd: उस स्थिति में ऐसा लगता है कि समस्या के रूप में * कुछ भी * एसिंक्रोनि के साथ करने के लिए नहीं है - निश्चित रूप से दिए गए उत्तर वास्तव में एसिंक भाग पर निर्भर नहीं हैं। –