12

मैं सभी कोड पथों के लिए निम्न विधि का परीक्षण करना चाहता हूं।विभिन्न इनपुट के साथ टेस्ट विधि सेट करें

public int foo (int x) 
{ 
    if(x == 1) 
     return 1; 
    if(x==2) 
     return 2; 
    else 
     return 0; 
} 

मैंने यह pex unit testing देखा है जहां एकाधिक इनपुट का परीक्षण किया जाता है। मैं एक यूनिट टेस्ट कैसे बना सकता हूं जो एकाधिक इनपुट स्वीकार करता है?

[TestMethod()] //some setup here?? 
    public void fooTest() 
    { 
     //some assert 
    } 

मैं प्रत्येक इनपुट के लिए एक परीक्षण विधि बनाने से बचना चाहता हूं। मैं विजुअल स्टूडियो 2010/2012 और नेट 4.0

+1

संभव डुप्लिकेट [? MSTest में अनेक पैरामीटर के साथ एक परीक्षण विधि को चलाने के लिए कैसे] (http://stackoverflow.com/questions/9021881/how-to-run -ए-टेस्ट-विधि-साथ-एकाधिक-पैरामीटर-इन-एमस्टेस्ट) – whosrdaddy

उत्तर

21

के साथ काम कर रहा हूं आप XML, Database, or CSV datasources MS Test का उपयोग कर सकते हैं। FooTestData.xml बनाएँ:

<?xml version="1.0" encoding="utf-8" ?> 
<Rows> 
    <Row><Data>1</Data></Row> 
    <Row><Data>2</Data></Row> 
</Rows> 

और अपने परीक्षण के लिए डेटा स्रोत के रूप में सेट:

[TestMethod] 
[DeploymentItem("ProjectName\\FooTestData.xml")] 
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", 
        "|DataDirectory|\\FooTestData.xml", "Row", 
        DataAccessMethod.Sequential)] 
public void FooTest() 
{ 
    int x = Int32.Parse((string)TestContext.DataRow["Data"]); 
    // some assert 
} 

NUnit ढांचे के साथ BTW यह है मैच आसान - आप TestCase attribute उपयोग कर सकते हैं परीक्षण डाटा उपलब्ध कराने के लिए:

[TestCase(1)] 
[TestCase(2)] 
public void FooTest(int x) 
{ 
    // some assert 
} 
+0

ठीक है शरीर में मैं कई asserts होगा? – Gobliins

+0

@Gobliins क्यों नहीं? आवेर्ट्स –

+2

@Gobliins फिर से गिनती का उपयोग करने के लिए कोई सीमा नहीं है, आप नामित पैरामीटर परिणाम का उपयोग कर सकते हैं और परीक्षणों को और सरल बनाया जा सकता है, आवेषण '[टेस्टकेस (1, परिणाम = 1)]' '[टेस्टकेस (2, परिणाम = 2)] ' – mhoff

3

एमएस टेस्ट यो में जाने का तरीका है आप डेटा परीक्षण कर सकते हैं जो एक ही परीक्षण विधि के लिए विभिन्न इनपुट स्वीकार करते हैं।

यहाँ यह पर एक ब्लॉग पोस्ट है: http://toddmeinershagen.blogspot.ca/2011/02/creating-data-driven-tests-in-ms-test.html

की
संबंधित मुद्दे