visual unitarias unit tutorial test studio pruebas coded automatizadas c# .net unit-testing automation automated-tests

c# - unitarias - Autogeneración de pruebas de unidades.NET



unit test c# (12)

Creo que no tiene sentido en la generación de pruebas unitarias, en lo que respecta a TDD.

Solo realiza pruebas unitarias para asegurarse de que usted (como desarrollador) esté en el camino con respecto al diseño y las especificaciones. Una vez que comienzas a generar pruebas automáticamente, pierde ese propósito. Claro que probablemente significaría una cobertura de código del 100%, pero esa cobertura no tendría sentido y estaría vacía.

Las pruebas unitarias automatizadas también significan que su estrategia es una prueba posterior, que es opuesta a la prueba de TDD antes del principio. De nuevo, TDD no se trata de pruebas.

Dicho esto, creo que MSTest tiene una herramienta automática de generación de pruebas unitarias; pude usar uno con VS2005.

¿Hay algo así como la generación de pruebas unitarias? Si es así...

... funciona bien?

... ¿Cuáles son las soluciones de generación automática que están disponibles para .NET?

... hay ejemplos de usar una tecnología como esta?

... ¿esto solo es bueno para ciertos tipos de aplicaciones, o podría usarse para reemplazar todas las pruebas de unidades escritas manualmente?


Eche un vistazo a Pex . Es un proyecto de Microsoft Research. Desde el sitio web:

Pex genera pruebas unitarias a partir de pruebas unitarias parametrizadas escritas a mano mediante pruebas exploratorias automáticas basadas en la ejecución dinámica simbólica.


Estoy de acuerdo con Jon. Ciertos tipos de pruebas, como las pruebas de fuzz automatizadas, definitivamente se benefician de la generación automatizada. Si bien puede utilizar las instalaciones de un marco de pruebas unitarias para lograr esto, esto no logra los objetivos asociados con una buena cobertura de pruebas unitarias.


He usado herramientas para generar casos de prueba. Creo que funciona bien para pruebas orientadas al usuario final de nivel superior. Cosas que son parte de las Pruebas de aceptación del usuario, más que las pruebas de unidades puras.

Utilizo las herramientas de prueba de la unidad para esta prueba de aceptación. Funciona bien.

Ver Herramientas para armar casos de prueba .


Hay un producto comercial llamado AgitarOne (www.agitar.com) que genera automáticamente clases de prueba JUnit.
No lo he usado, así que no puedo comentar lo útil que es, pero si estuviera haciendo un proyecto de Java en este momento lo estaría buscando.

No sé de un equivalente de .net (Agitar hizo una versión .net pero AFAIK nunca se materializó).


Selenium genera pruebas unitarias a partir de comandos de usuario en una página web, bastante ingenioso.



Parasoft .TEST tiene una funcionalidad de generación de pruebas. Utiliza el marco NUnit para la descripción de las pruebas y la evaluación de aserciones.

Es posible preparar un conjunto de pruebas de regresión mediante escenarios de generación automatizados (construir entradas y llamar al método probado) y crear afirmaciones que se basan en el comportamiento actual de la base de código. Más tarde, después de que la base de código bajo pruebas evolucione, las aserciones indican regresiones o pueden volver a registrarse fácilmente.


GennyMcGenFace crea una prueba unitaria para cada función en su clase y genera objetos con palabras / valores aleatorios en cada parámetro.

  • Genera pruebas unitarias para cada función en tu clase
  • Calcula los valores válidos generados aleatoriamente para las entradas del parámetro y la declaración de devoluciones.
  • Las interfaces simuladas devuelven valores válidos generados aleatoriamente
  • Genera pruebas unitarias para cada función en tu clase
  • Importa todos los espacios de nombres necesarios en su clase de prueba

Ayuda a configurar las pruebas de su unidad, especialmente si tiene objetos de entrada con muchos parámetros.

La prueba unitaria se verá algo como esto


Creé ''ErrorUnit'' y genera pruebas de unidad MSTest o NUnit desde su Visual Studio en pausa o desde sus registros de errores; Variables de clase burlona, ​​Parámetros de método y Acceso a datos EF hasta el momento. ( http://ErrorUnit.com )

Ningún generador de prueba de unidad puede hacer todo; Las Pruebas Unitarias están clasificadas clásicamente en tres partes: Arreglar, Actuar y Afirmar; la parte Arrange es la parte más grande de una prueba unitaria y establece todas las condiciones previas para una prueba, burlándose de todos los datos sobre los que se va a actuar en la prueba, la parte Act de una Prueba Unitaria suele ser una línea y activa la parte del código que se está probando que pasa en esos datos, y finalmente la parte de Assert de la prueba toma los resultados de la porción Act y verifica que cumplió con las expectativas (puede haber cero líneas cuando se asegura de que no haya ningún error).

Los generadores de pruebas unitarias generalmente solo pueden hacer las porciones ''Organizar'' y ''Actuar'' en la creación de pruebas unitarias; sin embargo, los generadores de pruebas unitarias en general no escriben las partes ''Asertar'' ya que solo usted sabe qué es correcto y qué es incorrecto para sus propósitos. Por lo tanto, es necesaria cierta entrada / ampliación manual de las Pruebas Unitarias para que esté completo.



He usado NStub para anular la prueba de mis clases. Funciona bastante bien.