Sé que la respuesta puede diferir para cada marco de prueba. Pero para los que sabes, ¿qué debería pasar?¿El método de configuración de la serie de pruebas se ejecuta una vez para cada prueba, o solo una vez para todas?
Respuesta
En MSTest tiene TestInitializeAttribute
Cuando se ejecuta en una prueba de carga, el método de marcado con este atributo se ejecutará una vez por cada iteración usuario virtual en la prueba. Si necesita realizar operaciones de inicialización una vez, que se apliquen a toda la prueba, use el ClassInitializeAttribute.
AssemblyInitializeAttribute
se ejecuta una vez para todas las pruebas en todas las clases.
En NUnit, tiene TestFixtureSetUp
que se ejecuta solo una vez antes de ejecutar todas las pruebas en el dispositivo y SetUp
que se ejecuta antes de ejecutar cada método de prueba.
Esto, naturalmente, depende de los marcos, y para las respuestas concretas a esto, debe consultar la documentación pertinente.
Los métodos de configuración para las pruebas o accesorios son útiles, pero no se deben abusar. Si las pruebas unitarias tienen complex set up methods, podría argumentar que son más pruebas de integración y, por lo tanto, deben refactorizarse. Una configuración de prueba compleja es un olor a código. Por otro lado, los métodos de configuración usados sabiamente pueden reducir la duplicación y hacer que las pruebas sean más legibles y mantenibles.
En junit4 tiene anotaciones disponibles para marcar ambos tipos de métodos de instalación/desmontaje. Aquí está el resumen:
- ejecutar la instalación antes de cada conjunto de pruebas uso
@BeforeClass
- correr derribar después de cada conjunto de pruebas uso
@AfterClass
- ejecutar la instalación antes de cada método de prueba en su uso privado
@Before
- corriendo derribar después de cada método de prueba en su suite use
@After
- 1. El hilo se ejecuta solo una vez
- 2. Cómo ejecutar el código de configuración solo una vez en una prueba de xUnit.net
- 3. Junit: ejecutar el método de configuración una vez
- 4. ORMLite - CallBatchTasks() individualmente o una vez para todas las actualizaciones?
- 5. ¿Se calcula javascript str.length cada vez que se llama o solo una vez?
- 6. PHPUnit: ¿Cómo creo una función para llamar una vez para todas mis pruebas?
- 7. Android C2DM Auth token, una vez o cada vez
- 8. Regex para usar cada letra solo una vez?
- 9. ReSharper ejecuta todas las pruebas unitarias en un proyecto o solución de una vez
- 10. ¿Cómo solo ejecutar pruebas unitarias una vez cuando se ejecuta "maven clean install" y Sonar?
- 11. AutoMapper: ¿Por qué UseValue solo se ejecuta una vez
- 12. ¿Alguna vez el controlador se ejecuta más de una vez en Jmeter?
- 13. cómo incrementar el valor del campo cada vez que se ejecuta la prueba de selenio?
- 14. ¿Por qué se ejecuta run() solo una vez?
- 15. ¿Los archivos .dll se cargan una vez para cada programa o una vez para todos los programas?
- 16. Un método que se ejecuta cada vez que se accede a una propiedad de clase (get o set)?
- 17. ¿Cómo activar una función una vez, y solo una vez ...?
- 18. SQL re-evalulate la función para cada fila o sólo una vez, convirtiéndola en una constante
- 19. En LINQ, ¿orderby() ejecuta la función de comparación solo una vez o la ejecuta siempre que sea necesario?
- 20. En una aplicación C#, ¿debería crearse una conexión de base de datos una vez o cada vez que se ejecuta una instrucción SQL?
- 21. ISupportIncrementalLoading solo se dispara una vez
- 22. Ejecutar un método una sola vez al principio antes de ejecutar cualquier prueba en PyUnit
- 23. UIWebView shouldStartLoadWithRequest solo se llamó una vez?
- 24. jQuery $ .getJSON funciona solo una vez para cada control. No llega al servidor de nuevo
- 25. Reparar todas las tablas de una vez
- 26. onGetViewFactory solo llamado una vez para varios widgets
- 27. knockoutjs: cómo recibir notificaciones para todas las propiedades una vez
- 28. ¿Cómo configurar una tarea CRON para que se ejecute solo una vez por conjunto de instancias?
- 29. Invitados de Django votan solo una vez
- 30. System.Threading.Timer solo se dispara una vez