qué que metodología metodologia diferencia ddd atdd and c# .net testing tdd bdd

c# - metodología - que es tdd bdd ddd



¿Cuál es la mejor manera de implementar BDD/TDD en.NET 2.0? (12)

Estoy buscando agregar un conjunto de pruebas a mi aplicación, sin embargo, no puedo pasar a los nuevos frameworks de prueba para .NET 3.5.

¿Alguien tiene alguna sugerencia sobre buenos marcos de prueba para usar?


NUnit es siempre uno de mis favoritos. Sin embargo, si usa TFS como control de origen, le sugiero que se quede con Microsoft Stack.


Para una biblioteca de objetos falsos , he encontrado que los Rhino.Mocks con licencia de BSD son bastante agradables.


También he tenido un gran éxito al usar NUnit .

También usé NMock cuando surgió la necesidad de objetos falsos. Como una ventaja adicional, la fábrica para crear tus objetos falsos se llama Mockery.

Para facilitar la ejecución de pruebas unitarias, he usado TestDriven.NET para ejecutar pruebas unitarias como codifiqué. Además, he usado Cruise Control .NET para ver SVN y verifico que cada nueva confirmación compila y pasa todas las pruebas unitarias.


NUnit y Rhino se adaptan bien y el contenedor de burla automática puede ser de su interés.

Si también estás mirando BDD, NBehave es probablemente una buena opción. Sin embargo, si solo quiere decir el estilo de BDD que se relaciona con las pruebas unitarias (xSpec), aunque puede salirse con la suya agregando un marco (aunque cosas como specunit agreguen algo de azúcar sintáctica), pero es posible que quiera mirar MSpec también es interesante.


Voy a tener que dar un aplauso para Moq . Es un marco burlón de luz limpia que te ayuda a guiarte al abismo del éxito.

Las herramientas de prueba incorporadas en TFS están bien, harán el trabajo, pero a menudo pueden ser un poco engorrosas para trabajar. Los informes generados, la cobertura del código y algunas otras porciones son particularmente malas, te hacen calvo a los 22 en lugar de a los 50.

Si realmente te gustan las pruebas, considera probar alguna integración continua. Sentirá el dolor de la regresión rápidamente y potencialmente lo ayudará a llegar al objetivo final más rápido.

Independientemente de lo que haga, pruebe algunos y vea cuál es el más natural, si tiene tiempo. Buena suerte y feliz codificación.


Recomiendo lo siguiente:

TestDriven.NET - Unit Testing add on para VS que está completamente integrado con todos los principales marcos de pruebas de unidades, incluyendo NUnit, MbUnit, etc ...

Aislador Typemock : un marco de burla para .Net Unit Testing

NUnit : un marco de prueba de unidad de fuente abierta que está en C #.


Este es probablemente un resumen de lo que ya se ha dicho, pero para TDD personalmente uso Rhino Mocks y MBUnit. Rhino Mocks es un marco de burla gratuito y de código abierto. La ventaja de Rhino Mocks es que no necesitamos usar cadenas mágicas para establecer sus expectativas como lo hace en NMock.

Me gusta MBUnit porque MbUnit tiene el concepto de RowTests que le permite variar sus entradas a su método de prueba. MBUnit también está disponible gratuitamente.

También debe asegurarse de que lo que elija para su marco de prueba unitario sea compatible con su CI (Continuous Integration Server). Nunit es compatible de forma predeterminada en Cruise Control.NET y debe hacer un poco de trabajo adicional para que MBUnit funcione en ccnet.

Desde el punto de vista IDE, debe tener TestDriven.NET. TestDriven.NET le permite hacer clic derecho y ejecutar pruebas en el IDE y es compatible con MBUnit y Nunit y otros.

NBehave es la biblioteca BDD que he usado. No he utilizado ninguno, así que no pude compararlos y compararlos contigo, pero NBehave es compatible con Gallio del equipo de MBUnit, lo que significa que puedes ejecutar tus pruebas de BDD tal como lo harías con TestDriven.NET.

También recomendaría Resharper. Encontrará que su productividad aumenta significativamente con esta herramienta de refactorización y orientación. Le ayudará a cambiar su código a medida que desarrolla sus pruebas.

Espero que esto ayude


Para mi proyecto, utilicé NUnit y TestDriven.NET con gran éxito. Puede crear una biblioteca separada solo para alojar su código de prueba o puede colocarlo en su ejecutable o biblioteca. Todo depende si quieres que tu código de producción se entrelaza con tu código de prueba.

Para Dependency Injection, uso NInject en mi proyecto actual y su funcionamiento es excelente. Si usa la inyección de Constructor, no necesita saturar su código con el atributo [Inyectar].

No he usado una biblioteca simulada para mi proyecto .NET 2.0, pero para otro proyecto .NET 3.5 usaré Moq

Tenga en cuenta que todo esto funciona con .NET 2.0 y superior. (excepto Moq)


Usar nUnit con TFS no es demasiado difícil. Incluso hay un proyecto en codeplex para implementar esto: NUnit for Team Build que incluso "publica" los resultados en el almacén.

No lo he intentado, pero aconsejaría a los clientes que tienen una gran inversión (o que tienen una fuerte preferencia sobre la herramienta MSTest) en nUnit que estén interesados ​​en implementar TFS para continuar con nUnit en lugar de intentar convertir todos sus pruebas existentes


Usamos MbUnit y Rihno Mocks y demuestran que funcionan muy bien juntos. Al realizar TDD casi seguramente necesitará hacer alguna forma de inyección de dependencia, mientras que esto se puede hacer de forma manual, vale la pena mirar un contenedor de IoC como Castle Windsor .

Vale la pena ver los guiones de John Paul Bodhood para que comiences. Blog de JPB


NUnit está disponible en http://www.nunit.org . Sugeriría esto incluso cuando trabaje en la pila de MS: la compatibilidad con frameworks que no son de MS está sucediendo en las vistas previas de MVC que muestra un movimiento definido en la dirección correcta para permitirnos todo para personalizar nuestras pilas para que quepan.