Estoy usando Visual Studio 2010 Beta 2. Tengo una sola [TestClass]
, que tiene una [TestInitialize]
, [TestCleanup]
y algunas [TestMethods]
.
¡Cada vez que se ejecuta un método de prueba, también se ejecutan los métodos de inicialización y limpieza!
Tenía la impresión de que [TestInitialize]
& [TestCleanup]
debería ejecutarse solo una vez, por ejecución de prueba local.
¿Es eso correcto? Si no, ¿cuál es la forma correcta de hacer esto?
Este es un comportamiento bastante estándar para los conjuntos de pruebas: configuración y desmontaje antes y después de cada prueba. La filosofía es que las pruebas no deberían depender unas de otras. Si desea otro comportamiento, probablemente debería usar objetos estáticos que persistan entre cada prueba.
fuente
Ejemplo completo tomado de la documentación de microsoft :
fuente
Los métodos marcados con el atributo [TestInitialize ()] se utilizan para preparar aspectos del entorno en el que se ejecutará la prueba de la unidad. El propósito de esto es establecer un estado conocido para ejecutar su prueba de unidad. Puede usar el método [TestInitialize ()] para copiar, alterar o crear ciertos archivos de datos que usará su prueba.
Cree métodos marcados con el atributo [TestCleanUp {}] para devolver el entorno a un estado conocido después de que se haya ejecutado una prueba. Esto podría significar la eliminación de archivos en carpetas o el retorno de una base de datos a un estado conocido. Un ejemplo de esto es restablecer una base de datos de inventario a un estado inicial después de probar un método que se utiliza en una aplicación de entrada de pedidos.
Para obtener más información, consulte: http://msdn.microsoft.com/en-us/library/ms182517%28v=vs.100%29.aspx
fuente