मैं NUnit3 के साथ टेस्टकेस में अपवादों के लिए कैसे परीक्षण करूं?न्यूटिट 3 में [टेस्टकेस] विशेषता के साथ अपवादों के लिए परीक्षण?
चलो कहते हैं कि मैं एक विधि Divide(a,b)
इस प्रकार के रूप में परिभाषित करते हैं:
public double Divide(double a, double b)
{
if(Math.Abs(b) < double.Epsilon) throw new ArgumentException("Divider cannot be 0");
return a/b;
}
मैं NUnit 3.0 परीक्षण मामलों का उपयोग कर इस विधि का परीक्षण करना चाहते हैं, तो हो सकता है मेरे पास है:
[TestCase(-10, 2, -5)]
[TestCase(-1, 2, -0.5)]
public void TestDivide(double a, double b, double result)
{
Assert.That(_uut.Divide(a, b), Is.EqualTo(result));
}
क्या कोई एक टेस्ट केस निर्दिष्ट करने का तरीका जो विभाजन() को ArgumentException फेंकने का कारण बनता है और किसी भी तरह से यह अपेक्षित परिणाम के रूप में होता है, उदाहरण के लिए की तर्ज पर कुछ:
[TestCase(-10, 2, -5)]
[TestCase(-1, 2, -0.5)]
[TestCase(-1, 0, ExpectedResult = TypeOf(ArgumentException)]
public void TestDivide(double a, double b, double result)
{
Assert.That(_uut.Divide(a, b), Is.EqualTo(result));
}
(बेशक मैं एक अलग परीक्षण विधि निर्धारित कर सकते हैं और इस में Assert.Throws()
उपयोग करते हैं, तो यह विशुद्ध रूप से जिज्ञासा से बाहर है)
तुम सच में एक भी टेस्ट केस में दो मजबूर करने के लिए करना चाहता था, तो आप एक बूलियन throwsException तर्क जोड़ सकते हैं और यह परीक्षण कर सकते हैं। हालांकि, अगर एक - फिर - और दो पूरी तरह से अलग उम्मीदों की उपस्थिति साबित होगी कि यह वास्तव में दो अलग-अलग परीक्षण होना चाहिए। – Charlie
एक स्थिर विधि कॉल का उपयोग करते समय निचला वाक्यविन्यास मेरे सिस्टम (NUnit 3.2.1) पर काम नहीं कर रहा है ... - मजाकिया पर्याप्त, 'Assert.Throws (() => MyStaticClass.MyStaticMethod (Badparameter)) काम करता है –
ChriPf
धन्यवाद @ChriPf - मुझे लगता है कि यह एक func होना चाहिए। मैंने इसे संपादित किया है। – Chris