Alternativa de pepino para .NET

80

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?

Owen
fuente

Respuestas:

91

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.

Gaspar Nagy
fuente
35

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 .

Jörg W Mittag
fuente
Intenté esto, pero seguí teniendo problemas al ejecutar la envoltura ICucumber. El mensaje que recibí decía que faltaba el archivo de configuración .yml.
Owen
Probé todo lo que se describe aquí también: thomaslundstrom.blogspot.com/2009/03/…
Owen
1
Supongo que se está refiriendo a este mensaje: "no se encontró cucumber.yml. Consulte la documentación de cucumber sobre la definición de perfiles en cucumber.yml. Debe definir un perfil 'predeterminado' para usar el comando cucumber sin ningún argumento. Escriba 'cucumber --help' para su uso. (Cucumber :: Cli :: YmlLoadError) ", ¿verdad? La pregunta obvia, cuando un programa se queja de que no pudo encontrar un archivo es, ¿el archivo está realmente ahí o no? Porque, si el archivo no está allí, entonces la razón por la que no se pudo encontrar es bastante obvia ...
Jörg W Mittag
1
Todavía no entiendo bien lo que quieres decir. El enlace que publicó no tiene absolutamente nada que ver con su problema. ¿Y qué quiere decir con "el archivo parece estar ahí"? Usted escribió el archivo, guardó el archivo, ¡debe saber si está allí o no!
Jörg W Mittag
1
Sus ejemplos y enlaces wiki son 404ing
mattumotu
20

Parece haber 3 posibilidades en este espacio:

  1. 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.

  2. 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.

  3. 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.

Kevin Berridge
fuente
2
Para cualquiera que lea esto, parece que Cuke4Nuke está en desuso a favor de SpecFlow richardlawrence.info/2011/10/21/the-future-of-cucumber-on-net
GuiSim
3

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

Johan Bergens
fuente
3

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

user3632158
fuente
2

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.

Todd
fuente