2011-08-01 10 views
18

Como está escrito en un libro bastante antiguo XUnit Patterns, NUnit 2.0 no creó nuevos aparatos de prueba para cada prueba, y debido a eso, si las pruebas manipulaban algún estado del dispositivo, se compartió y podría causar varios efectos secundarios negativos.¿NUnit crea ahora una nueva instancia de la clase de dispositivo de prueba para cada método de prueba contenido?

¿Sigue siendo el mismo? Traté de encontrarlo en el sitio oficial, pero no lo hice, y no he usado NUnit por un tiempo.

Respuesta

14

El dispositivo se crea una vez para todas las pruebas en ese dispositivo.

Para una clase de dispositivo determinada, un método FixtureSetup se ejecuta una vez para todas las pruebas en un dispositivo, y se ejecuta un método de instalación una vez para cada prueba. Por lo tanto, cualquier estado que deba restablecerse debe hacerse en un método de Configuración (o TearDown, que se ejecuta al final de cada prueba).

+0

versiones más nuevas de NUnit sustituido "FixtureSetup" con "OneTimeSetUp" – Pedro

3

Descubrí que era un problema que me afectaba y también encontré este enlace que proporciona un poco de historia al problema; https://blogs.msdn.microsoft.com/jamesnewkirk/2004/12/04/why-variables-in-nunit-testfixture-classes-should-be-static

Creo que una de las mayores meteduras de pata que se hizo cuando escribimos NUnit V2.0 era para no crear una nueva instancia de la clase pieza de prueba para cada método de prueba contenida.

aún no han sido evaluados esto en V3 para ver si es cambiado

+2

Es lo mismo (un solo caso accesorio de re-utilizar para todas sus pruebas) a partir de NUnit v3.9. –

Cuestiones relacionadas