2009-02-24 13 views
10

Me gustaría saber cómo implementar las pruebas unitarias en una aplicación existente (bastante grande) utilizando visual studio 2008 (.net 2.0).New to Unit Testing

Entiendo que el desarrollo de pruebas unitarias para el código existente/heredado no es realista, pero me gustaría tener pruebas para el código en el futuro.

He encontrado muchos ejemplos sobre cómo escribir pruebas para el código pero nada sobre cómo configurarlo desde cero en un proyecto existente, y cómo integrarlo en el ciclo de desarrollo.

Respuesta

5

enfoque simple:

  • Escoja uno de los marcos de pruebas unitarias (Nunit, MbUnit, xUnit, VS marco de pruebas unitarias, ...) proyecto
  • Agregar para pruebas de unidad en la solución (por ejemplo unittests)
  • Comience a escribir pruebas.

para facilitar la organización, crear al menos un espacio de nombres para cada proyecto en solución, por ejemplo UnitTest.Project1, UnitTests.Project2, ... Dependiendo del tamaño de los proyectos, añadir más niveles de espacio de nombres.

Este proyecto de prueba forma es parte de la solución. Si usa alguna herramienta de integración continua, las pruebas se pueden ejecutar automáticamente en cada depósito de código fuente de fuente.

Editar:
Con respecto al comentario sobre el problema Test Framework MS Unidad con la creación de pruebas unitarias, no es saber problema: "Create unit test" wizard does not work. Parece que hay tipos de proyectos no compatibles que impiden que el asistente de prueba de unidades funcione correctamente. Acabo de probar con una solución que tiene un F # y varios proyectos de C#. Agregué un proyecto de prueba unitaria e intenté agregar pruebas. El asistente de prueba tuvo problemas hasta que descargué el proyecto F #. Entonces todo funcionó bien.

+0

Esta puede ser una pregunta estúpida, pero pensé que las pruebas unitarias estaban "horneadas" en el IDE de VS 2008, entonces, ¿para qué se necesitan los marcos de prueba de la unidad? – CodeKiwi

+0

Tienes razón. Me olvidé de eso porque estoy usando NUnit solo porque fue la mejor opción hace 4 años cuando comencé a probar la unidad. – zendar

+0

He intentado simplemente agregar pruebas unitarias utilizando la opción de contexto "crear prueba de unidad" al hacer clic derecho en una clase pero siempre tuve que enfrentar un error (no puedo recordarlo en este momento) sin embargo sospecho que se relaciona con una fuente visual segura. . – CodeKiwi

1

Le recomiendo leer este libro: Working Effectively with Legacy Code si desea hacer una prueba de unidad para el código existente. También es un buen libro sobre mejores prácticas para pruebas unitarias en general.

Es posible realizar pruebas unitarias en proyectos existentes, pero deberá hacer algunos ajustes aquí y allá para que el código sea comprobable. Demasiadas dependencias es a menudo el problema.

EDITAR (después de su comentario) Si realmente desea incrustar pruebas unitarias en su ciclo de desarrollo, entonces debería ir a TDD (Test Driven Development). El objetivo aquí es escribir las pruebas unitarias primero, para que comprendas bien qué harán tus clases. Por supuesto, estas pruebas fallarán, pero el objetivo es hacer que funcionen una por una. Haz un google en TDD, hay mucha información por ahí.

+0

Sí sé que es un poco inútil implementarlo en esta etapa, pero que están recibiendo la oportunidad de comenzar de nuevo como una proyecto greenfield .. debido a los cambios arquitectónicos, quiero implementar pruebas unitarias desde el principio y pensé Id tener una ventaja ahora ... (de ahí la pregunta) – CodeKiwi

+0

¿eh? No entiendo – CodeKiwi

+0

Gerrie, sí TDD es algo que estamos investigando en este momento, parte de la razón por la que quiero poner en práctica algunas pruebas unitarias ahora, – CodeKiwi

3

Una manera fácil de realizar pruebas con el código existente es tener una política de escribir una prueba cuando se encuentre un error.

i.e

  • Búsqueda de errores
  • prueba
  • de escritura que recplicates fallo
  • Fix
+0

solo por interés, suponiendo que tienes un método de propósito único (o casi único) cuántas pruebas usualmente tienes por método (ball park), – CodeKiwi

+0

Realice una prueba para un conjunto de parámetros "promedio" o "estándar" y asegúrese de realizar pruebas para todas las condiciones de contorno conocidas (parámetros nulos, valores máximo/mínimo, ...). – zendar

+0

+1 y escribe pruebas para cualquier código nuevo que entre, no solo para errores. Con el tiempo se suma. –