2010-12-30 16 views
21

He usado NUnit con VS2008, y ahora me estoy adaptando a MSTest en VS2010. Solía ​​ser capaz de crear un objeto en TestSetup() y deshacerme de él en TestCleanup(), y crear el objeto cada vez que se ejecutaba un método de prueba en NUnit, lo que me impedía duplicar el código en cada método de prueba.Usando MS Test ClassInitialize() y TestInitialize() en VS2010 en comparación con NUnit

¿Esto no es posible con MSTest? Los ejemplos que encuentro usando los atributos ClassInitialize y ClassCleanup y TestInitialize y TestCleanup solo muestran cómo escribir en la consola. Ninguno muestra un uso más detallado de estos atributos.

Respuesta

34

Aquí hay un ejemplo simple usando TestInitialize y 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

Gracias, Tom. ¿Estoy en lo cierto al suponer que NorthwindEntities es un ensamblado al que se hace referencia en el proyecto de prueba? –

+0

Sí, estaba en un ensamblado al que se hace referencia. –

+3

Tenga en cuenta que los métodos TestInitialize y TestCleanup deben marcarse como ** public **, como se muestra. – mungflesh

Cuestiones relacionadas