में फेंक दिया गया अपवाद कैसे संभालें मैंने अपने एमवीसी प्रोजेक्ट के लिए सी # में यूनिट टेस्ट क्लास लिखा है।NUnit
टेस्ट विधि
[Test]
public void To_Add_DocumentStatusIsNull_ThrowsInvalidOperationException_ServiceTest()
{
try
{
_IDocumentStatusRepositoryMock = new Mock<IDocumentStatusRepository>();
_unitOfWorkMock = new Mock<IUnitOfWork>();
DocumentStatusService documentStatusService = new
DocumentStatusService(_unitOfWorkMock.Object,
_IDocumentStatusRepositoryMock.Object);
DocumentStatus documentStatus;
documentStatus = null;
_IDocumentStatusRepositoryMock.Setup(m => m.Add(documentStatus));
documentStatusService.Add(documentStatus);
Assert.Pass();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
पीछा कर रहा है और सेवा विधि
public virtual void Add(TEntity entity)
{
try
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
_repository.Add(entity);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
अब यह परीक्षण विधि केवल सेवा वर्ग फेंक दिया ArgumentNullException.So कैसे ArgumentNullException संभाल करने की वजह से पारित नहीं पीछा कर रहा है या यह परीक्षण कैसे पास करें?
कृपया किसी को भी मदद
आपकी सेवा विधि में 'नई अपवाद (ई.मेजेज) फेंकने का उद्देश्य क्या है? आप मूल अपवाद क्यों नहीं उठाएंगे? मैं उस 'try'/'catch' सेटअप के लिए कोई उपयोग नहीं देख सकता ...? और * निश्चित रूप से * एनयूनीट परीक्षण में 'try'/'catch' में कोई बिंदु नहीं है - NUnit स्वचालित रूप से अपवादों को त्रुटियों के रूप में मानता है, जब तक कि आपने ज्ञात अपेक्षित अपवाद –
क्षमा नहीं किया है, यह किसी अन्य उद्देश्य के लिए लिखा गया है और आप ठीक है यह गलत है.अब मैं जानना चाहता हूं कि मेरी टेस्ट विधि में ArgumentNullException को कैसे संभालना है? –