2014-10-24 12 views
19

मैं यूनिट टेस्टिंग सी # वेब एपीआई नियंत्रक हूं - प्रत्येक को प्रारंभ करने के लिए कई पैरामीटर की आवश्यकता होती है। मेरे पास इस समय प्रत्येक परीक्षा में यह कोड है लेकिन यह बहुत भारी है। मैं इस कोड को [testInitialize] में कैसे डाल सकता हूं ताकि यह प्रत्येक परीक्षण से पहले चलता है?यूनिट टेस्ट सी # [टेस्टइनाइजलाइज]

मैंने निम्नलिखित कोशिश की है लेकिन स्पष्ट रूप से यह testmethods के दायरे से बाहर है।

[TestInitialize] 
public void TestInitialize() 
{ 
    APIContext apicon = new APIContext(); 
    xRepository xRep = new xRepository(apicon); 
    var controller = new relevantController(cRep); 
    controller.Request = new HttpRequestMessage(); 
    controller.Configuration = new HttpConfiguration(); 
    relevantFactoryModel update = new relevantFactoryModel(); 
} 

धन्यवाद

उत्तर

37

आप चर है कि आप परीक्षण वर्ग के क्षेत्र के रूप में की जरूरत है सेट और फिर उन्हें TestInitialize विधि में प्रारंभ कर सकते हैं।

class Tests 
{ 
    // these are needed on every test 
    APIContext apicon; 
    XRepository xRep; 
    Controller controller; 
    RelevantFactoryModel update; 

    [TestInitialize] 
    public void TestInitialize() 
    { 
     apicon = new APIContext(); 
     xRep = new xRepository(apicon); 
     controller = new relevantController(cRep); 
     controller.Request = new HttpRequestMessage(); 
     controller.Configuration = new HttpConfiguration(); 
     update = new relevantFactoryModel(); 
    } 
} 

इस तरह खेतों हर परीक्षण से पहुँचा जा सकता

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