2014-10-24 30 views
19

Ben Birim Sınaması C# Web API denetleyicisiyim - her biri başlatılacak çeşitli parametreler gerektirir. Şu anda her testte bu kodu var ama çok hantal. Bu testi [TestInitialize] içine nasıl koyabilirim ki her testten önce çalışır?Birim Sınaması C# [TestInitialize]

Aşağıdakileri denedim ama açıkçası test yöntemleri için kapsam dışında görünüyor.

[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(); 
} 

Teşekkür

cevap

37

Sen Test sınıfının alanları olarak ihtiyaç değişkenleri ayarlayın ve sonra TestInitialize yönteminde bunları başlatabilir. alanlar her testte ulaşılabilir

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(); 
    } 
} 

Bu şekilde

İlgili konular