Rápido, ¿alguien se ha encontrado con una biblioteca similar al pepino de Ruby (un DSL legible por humanos para definir historias de casos de uso que se pueden probar) en la esfera .NET?
Respuestas:
También debe consultar SpecFlow , que es un proyecto de código abierto para hacer BDD con .NET.
SpecFlow está usando el mismo formato de definición (Gherkin), como pepino, pero puede escribir sus definiciones de pasos en .NET. Básicamente, genera clases de prueba unitaria (NUnit, MsTest, xUnit, etc.) a partir de sus archivos de características, por lo que puede usar el mismo motor de ejecución de prueba unitaria, como lo hace con las pruebas unitarias reales. De esta manera también es más fácil integrar las pruebas funcionales de BDD a la construcción de integración.
En las versiones recientes, SpecFlow tiene una función de coloración de sintaxis para Visual Studio 2010 y soporte para Silverlight y Mono / MonoDevelop.
Por supuesto. Se llama Pepino . Hay un ejemplo de cómo probar el código .NET en el directorio de ejemplos de Cucumber y la documentación en Cucumber Wiki tanto para .NET como para Mono .
Parece haber 3 posibilidades en este espacio:
Utilice pepino y rubí de hierro. Aquí hay un blog sobre algunos pasos para comenzar con esto. La desventaja parece ser el rendimiento. He leído versiones que dicen que es más lento en general , y otras que dicen que es muy lento para girar . Sin embargo, esto está lejos de ser concluyente, ya que IronRuby todavía está en desarrollo activo.
Utilice Cuke4Nuke . He escuchado este producto recomendado varias veces. En realidad, usa Ruby y Cucumber regulares, pero ejecuta su código .NET a través de un servidor. Afortunadamente, toda esa complicación es transparente a medida que la usa. Cuke4Nuke ya no se encuentra en desarrollo activo.
Utilice SpecFlow . Este es un puerto .NET de Cucumber. Debido a esto, es posible que no tenga todas las características de Cucumber y que tenga características adicionales. Lo bueno es que no es necesario tener instalado Ruby.
En este momento no parece claro cuál de estas es la mejor opción. Personalmente, planeo comenzar con Cuke4Nuke.
Escribí una publicación de blog que detalla el proceso que seguí para ejecutar Cucumber con IronRuby: http://hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/
StoryTeller está algo relacionado aunque no es estrictamente BDD. Parece admitir un tipo de prueba algo diferente, pero está escrito en .NET. Leer más en el blog de Jeremy Millers
BDD en inglés simple se puede hacer con Concordion.NET . Las especificaciones del comportamiento esperado están escritas en HTML.
Cualquier oración de cualquier estructura se puede utilizar para las pruebas de Concordion.NET. Por ejemplo, no es necesario escribir una frase como "dada una cuenta bancaria con un saldo de 10 $, cuando se inicia un retiro de 20 $, la transacción falla". En su lugar, se podría utilizar cualquier tipo de oración, como "una transacción de 20 $ falla, si la cuenta no contiene suficiente saldo de 10 $".
Las pruebas de Concordion.NET se ejecutan con la ayuda de NUnit, que está integrado en muchos entornos diferentes: https://github.com/concordion/concordion-net
También está StoryQ. Este es un enfoque centrado en el desarrollador para las historias de usuarios que pueden informar a los clientes. http://storyq.codeplex.com
StoryQ es un marco BDD integrado portátil (dll único) para .NET 3.5. Se ejecuta dentro de su corredor de prueba existente y ayuda a producir resultados de prueba amigables para los humanos (HTML o texto). La fluida interfaz de StoryQ agrega escritura sólida, intellisense y documentación a su gramática BDD.
Tengo un artículo que muestra cómo usar Cucumber con C # en http://blog.webintellix.com/2009/10/how-to-use-cucumber-with-net-and-c.html Los tiempos de ejecución han mejorado dramáticamente con IronRuby 1.0.