Lo primero que haría es descargar una copia de TestDriven.Net para usar como corredor de prueba. Esto agregará un menú de clic derecho que le permitirá ejecutar pruebas individuales al hacer clic con el botón derecho en el método de prueba y seleccionar Ejecutar prueba (s). Esto también funciona para todas las pruebas en una clase (clic derecho en clase, pero fuera de un método), un espacio de nombres (haga clic derecho en el proyecto o en el espacio de nombres fuera de una clase) o una solución completa (haga clic derecho en la solución). También agrega la capacidad de ejecutar pruebas con cobertura (built-in o nCover) o el depurador desde el mismo menú contextual.
En cuanto a la configuración de pruebas, generalmente me quedo con el proyecto de prueba por proyecto y una clase de prueba por clase bajo prueba. A veces crearé clases de prueba para aspectos que se ejecutan en muchas clases, pero no por lo general. La forma típica en que los creo es crear primero el esqueleto de la clase, sin propiedades, sin constructor, pero con el primer método que deseo probar. Este método simplemente arroja una NotImplementedException.
Una vez creado el esqueleto de clase, utilizo el botón derecho Crear pruebas unitarias en el método bajo prueba. Esto abre un cuadro de diálogo que le permite crear un nuevo proyecto de prueba o seleccionar uno existente. Creo, y nombre apropiadamente, un nuevo proyecto de prueba y hago que el asistente cree las clases. Una vez hecho esto, es posible que también desee crear las funciones de acceso privado para la clase en el proyecto de prueba. A veces, estos deben actualizarse (recrearse) si su clase cambia sustancialmente.
Ahora tiene un proyecto de prueba y su primera prueba. Comience por modificar la prueba para definir un comportamiento deseado del método. Escribe suficiente código para (apenas) pasar la prueba. continuar con la escritura de pruebas/códigos de escritura, especificando más comportamiento para el método hasta que se defina todo el comportamiento para el método. Luego avance al siguiente método o clase según corresponda hasta que tenga suficiente código para completar la función en la que está trabajando.
Puede agregar más y diferentes tipos de pruebas según sea necesario. También puede configurar su control de código fuente para exigir que algunas o todas las pruebas pasen antes de registrarse.
cuidado para vincular/explicar NUnit? – Malfist
¿Por qué no es fácil hacerlo en NUnit? NUnit proporciona la misma capacidad para realizar la configuración/desmontaje de la prueba. Puede usar NUnit para el código de prueba unitaria que no fue escrito con las pruebas unitarias en mente también. –
Quizás entendí mal cómo funciona NUnit, pero pensé que tenía que colocar declaraciones declarivas con el código que está probando para que NUnit sepa dónde encontrar los sujetos de prueba. Con el marco de prueba integrado en VS, esto no es necesario. Aunque podría estar equivocado sobre NUnit. :) – Eric