ventajas unitarias tipos software sistemas sistema pruebas integración integracion funcionales ejemplo desventajas c# unit-testing

c# - tipos - pruebas unitarias e integración



Escribir las pruebas de unidad en un conjunto o en un conjunto por separado? (5)

Diría que la única vez que desea incorporar cualquier código de prueba en su implementación final es cuando el código de prueba está allí para supervisar y controlar la aplicación.

Dejar el código de prueba en la implementación:

  • no inflinge el código sin ninguna ventaja real : todo ese código adicional etiquetado no se usará en absoluto in situ.
  • afecta los lanzamientos : ¿publicas una nueva versión de la aplicación completa? cuando lo que ha mejorado solo está en el código de prueba, por ejemplo, un conjunto de pruebas se extiende como resultado de una corrección de errores.
  • no puede reutilizar fácilmente el marco de prueba en otro proyecto ; si siempre está liberando aplicaciones que están obstruidas con código de prueba, cualquier proyecto posterior deberá volver a utilizar el mismo código de prueba. De lo contrario, terminas con la situación en la que la aplicación A está usando v1.2 de la plataforma de prueba para esos aspectos de la aplicación. que son comunes en todas las aplicaciones, por ejemplo, una capa de presentación o un marco de lógica de negocios, etc. Y la aplicación. B está utilizando v1.1 del marco de prueba, la aplicación. C está usando v1.2.1, etc.

Desacoplamiento por otro lado le permite:

  • Actualice y amplíe fácilmente el conjunto de pruebas según sea necesario.
  • reutilizar fácilmente el conjunto de pruebas en múltiples proyectos.
  • utilizar un marco de prueba común en múltiples proyectos.

HTH

aclamaciones,

Robar

Al escribir pruebas unitarias, ¿coloca sus pruebas dentro del conjunto que desea probar o en un ensamble de prueba separado? He escrito una aplicación con las pruebas en clases en un ensamblaje separado para facilitar el desalojo, ya que puedo excluir el ensamblaje. ¿Alguien escribe allí las pruebas dentro de la asamblea que desea probar y, de ser así, cuál es la justificación para ello?


En un ensamblaje diferente. De lo contrario, su ensamblado hará referencia al marco de prueba (por ejemplo, Nunit.Framework.dll) y deberá instalarlo en la máquina del cliente.

Incluso si lo que envía es una biblioteca, y quiere que su cliente vea las pruebas de la unidad como un ejemplo o una especificación sobre cómo usar los objetos que proporciona, hay muy poca ventaja en incluir en el ensamblaje de producción.


Esto es ampliamente debatido en toda la red.

Usamos ensamblajes separados y el atributo InternalsVisibleTo para ayudar a los ensambles del probador a ver todas las entrañas de los conjuntos probados. Tendemos a hacer un ensamblaje de prueba para cada ensamblaje que estamos probando.


Puede mantenerlos en ensamblajes separados en la solución, e ILMergelos más adelante para la depuración, y no ILMergelos para su lanzamiento.


Tengo una solución única con un proyecto de interfaz, un proyecto de prueba, un proyecto de dominio y un proyecto de datos. Cuando lanzo, solo publico la interfaz, que no hace referencia a las pruebas para que no se compile.

Editar: La conclusión es que no quieres que sea parte de tu lanzamiento final. Puede lograr esto automáticamente en VS usando un proyecto / ensamblaje separado. Sin embargo, puede tenerlo en el mismo ensamblado, pero simplemente no compila ese código si usa nant o msbuild. Un poco desordenado, mantén las cosas ordenadas, usa un ensamble por separado :)