unit-testing - unitarias - unit test c# visual studio 2013
¿Deben mantenerse las clases de prueba unitaria bajo control de versión con el resto del código? (13)
¡Absolutamente! Las clases de prueba son código fuente y deben ser administradas como cualquier otro código fuente. Deberá modificarlos, realizar un seguimiento de las versiones y conocer el historial de mantenimiento.
También debe mantener los datos de prueba bajo control de fuente a menos que sea masivamente grande.
Si creo un conjunto de pruebas para un proyecto de desarrollo, ¿esas clases deberían mantenerse bajo control de versión con el resto del código del proyecto?
Absolutamente, deberían ser tratados como ciudadanos de primera clase de su código base. Necesitarán todo el amor y cuidado, es decir, el mantenimiento como lo hace cualquier pieza de código.
Absolutamente. Las clases de prueba deben mantenerse actualizadas con el código. Esto significa registrarlo y ejecutar las pruebas en integración continua.
De hecho si. ¿Cómo podría alguien pensar lo contrario?
Si utiliza las ramas de código, debe intentar que el código de prueba encaje naturalmente en la línea de código principal, de modo que cuando se bifurque, las versiones correctas de las pruebas también se ramifiquen.
Las pruebas unitarias deben estar vinculadas a una base de código en su repositorio.
Sin otra razón que si tuviera que producir una versión de mantenimiento para una versión anterior, puede garantizar que, según la métrica de las pruebas de su unidad, su código no es peor de lo que era antes (y afortunadamente ahora es mejor).
Sí, deberían. Debería verificar las pruebas y ejecutarlas cada vez que realice cambios en el código. Si los colocas en otro lugar, es mucho más problemático ejecutarlos.
Sí, deberían. Las personas que consulten la última versión deberían poder probar el código en su máquina. Esto ayudará a identificar las dependencias faltantes y también puede proporcionarles documentación no oficial sobre cómo funciona el código.
Sí, no hay ninguna razón para no ponerlos en control de la fuente. ¿Qué pasa si las pruebas cambian? ¿Qué pasa si las interfaces cambian, necesitando que las pruebas cambien?
Sí, por todos los motivos anteriores también, si está utilizando un servidor de integración continua que está "viendo" el control de su fuente, puede hacer que ejecute las últimas pruebas de unidad en cada confirmación.
Esto significa que una compilación fallada es el resultado de fallas en las pruebas de la unidad y del código no compilado.
Sí, todas las mismas razones por las que pones el código de producción en el control de fuente todavía se aplican a cualquier prueba de unidad que escribas.
Es el clásico quién, dónde y por qué preguntas:
- ¿Quién cambió el código?
- ¿Cuándo lo cambiaron?
- ¿Para qué lo cambiaron?
Estas preguntas son tan pertinentes para probar el código como lo son para el código de producción. Debes poner tu código de prueba unitario en el repositorio.
Sí. Por todas las otras razones mencionadas aquí, además del hecho de que a medida que cambia la funcionalidad, su conjunto de pruebas cambiará, y debería ser fácil obtener el conjunto de pruebas correcto para cualquier versión, rama, etc. y tener las pruebas no solo en control de versiones, pero el mismo repositorio que tu código es la forma de lograrlo.
Sí.
El código de prueba es un código. Debe mantenerse, refactorizarse y versionarse. Es una parte de la fuente de su sistema.
Absolutamente. Es probable que descubra que a medida que cambia el código, es posible que las pruebas también tengan que cambiar, por lo que es probable que desee tener un registro de esos cambios, especialmente si las pruebas o el código dejan de funcionar de repente. ;-)
Además, las cajas de prueba de la unidad deben mantenerse lo más cerca posible del código real que están probando (la parte inferior del mismo archivo parece ser el estándar). Es tanto por conveniencia como por mantenimiento.
Para leer un poco más acerca de lo que hace una buena prueba de unidad, revisa esta publicación de .