2010-12-30 13 views
21

Ho utilizzato NUnit con VS2008 e ora mi sto adattando a MSTest su VS2010. Ero in grado di creare un oggetto in TestSetup() e di eliminarlo in TestCleanup(), e di creare l'oggetto ogni volta che veniva eseguito un metodo di prova in NUnit, impedendomi di duplicare il codice in ogni metodo di prova.Utilizzo di MS Test ClassInitialize() e TestInitialize() in VS2010 rispetto a NUnit

Non è possibile con MSTest? Gli esempi che sto riscontrando utilizzando gli attributi ClassInitialize e ClassCleanup e TestInitialize e TestCleanup mostrano solo come scrivere sulla console. Nessuno mostra un uso più dettagliato di questi attributi.

risposta

34

Ecco un semplice esempio utilizzando TestInitialize e TestCleanup.

[TestClass] 
public class UnitTest1 
{ 
    private NorthwindEntities context; 

    [TestInitialize] 
    public void TestInitialize() 
    { 
     this.context = new NorthwindEntities(); 
    } 

    [TestMethod] 
    public void TestMethod1() 
    { 
     Assert.AreEqual(92, this.context.Customers.Count()); 
    } 

    [TestCleanup] 
    public void TestCleanup() 
    { 
     this.context.Dispose(); 
    } 
} 
+0

Grazie, Tom. Ho ragione nel ritenere che NorthwindEntities sia un assembly referenziato nel progetto di test? –

+0

Sì, era in un assembly di riferimento. –

+3

Si noti che i metodi TestInitialize e TestCleanup devono essere contrassegnati come ** public **, come mostrato. – mungflesh

Problemi correlati