2010-09-14 8 views
7

एक Asp.Net MVC कोड नमूना कि MbUnit इस्तेमाल किया के रूप में यह परीक्षण ढांचे है पढ़ते समय, मैंने देखा कि यह बहुत की तरह, एक पंक्ति विशेषता का उपयोग करके एकाधिक इनपुट संभावनाओं के खिलाफ एक भी परीक्षण चलाने के लिए संभव हो गया था:NUnit में MbUnit की पंक्ति विशेषता?

[Test] 
[Row("[email protected]_test.com")] 
[Row("sdfdf dsfsdf")] 
[Row("[email protected]")] 
public void Invalid_Emails_Should_Return_False(string invalidEmail) 
{ 
    ... 
} 

कृपया मुझे यह जानना है कि क्या एमबीयूनीट की पंक्ति विशेषता के बराबर एनयूएनआईटी है, या अन्यथा एनयूनीट में इसे हासिल करने का एक शानदार तरीका है। धन्यवाद।

उत्तर

10

के बाद मुझे लगता है कि testcase विशेषता

[TestCase(12,3,4)] 
[TestCase(12,2,6)] 
[TestCase(12,4,3)] 
public void DivideTest(int n, int d, int q) 
{ 
    Assert.AreEqual(q, n/d); 
} 

http://www.nunit.com/index.php?p=testCase&r=2.5.7

+1

+1 आप कर रहे हैं - 'जब' SequentialAttribute' साथ ValuesAttribute' का उपयोग कर 'से अधिक पैरामीटर का उपयोग कर TestCaseAttribute' और अधिक पठनीय परीक्षण कोड की ओर जाता है। मैं केवल 'ValuesAttribute' का उपयोग करता हूं अगर मैं' अनुक्रमिक एट्रिब्यूट 'द्वारा निर्दिष्ट किसी अन्य संयोजन के अलावा कुछ संयोजन का उपयोग करना चाहता था। –

+0

+1 उसने क्या कहा ... –

2

NUnits Sequential attribute बिल्कुल यही करता है।

SequentialAttribute अतिरिक्त संयोजन पैदा करने के बिना, निर्दिष्ट करने के लिए कि NUnit व्यक्तिगत डेटा परीक्षण के मापदंडों के लिए प्रदान की जाती आइटम का चयन करके परीक्षण मामलों उत्पन्न करनी चाहिए एक परीक्षण पर प्रयोग किया जाता है।

नोट: पैरामीटर डेटा जो NUnit डेटा आइटम इसकी गारंटी नहीं है का उपयोग करता है में कई गुण, आदेश द्वारा प्रदान की जाती है। हालांकि, यह दिए गए रनटाइम और ऑपरेटिंग सिस्टम के लिए स्थिर रहने की उम्मीद है।

उदाहरण निम्नलिखित परीक्षण इस प्रकार तीन बार निष्पादित किया जाएगा,:

MyTest (1, 'ए')
MyTest (2, "बी") MyTest (3, नल)

[Test, Sequential] 
public void MyTest(
    [Values(1,2,3)] int x, 
    [Values("A","B")] string s) 
{ 
    ... 
} 

अपने उदाहरण को देखते हुए, यह बन जाएगा

[Test, Sequential] 
public void IsValidEmail_Invalid_Emails_Should_Return_False(
    [Values("[email protected]_test.com" 
      , "sdfdf dsfsdf" 
      , "[email protected]")] string invalidEmail) 
{ 
    ... 
}