¿Cuál es el marco de BDD más maduro para .NET?




6 Answers

Echa un vistazo a SpecFlow .

Es una herramienta inspirada en Cucumber que tiene como objetivo proporcionar un enfoque pragmático y sin fricción para el desarrollo guiado por pruebas de aceptación y el desarrollo guiado por comportamiento para los proyectos .NET de hoy.

La integración de VisualStudio parece especialmente prometedora.

.net automated-tests bdd

Hemos estado usando BDD - Behavior Driven Development (desde la perspectiva de Dan North) como un mecanismo para registrar las pruebas de aceptación de los usuarios e impulsar el desarrollo en un par de proyectos, con un éxito decente. Hasta la fecha, aunque no hemos automatizado las pruebas en sí.

Ahora estoy buscando automatizar las pruebas, pero no estoy seguro de qué marco de comportamiento respaldar. Hasta ahora, NBehave parece ser el precursor, pero ¿hay otros que debería ver? ¿Hay un claro 'ganador' en este momento?




No creo que haya un 'ganador' realmente. Otros marcos incluyen el proyecto SpecUnit.NET y MSpec también se muestra prometedor con los inicios de un adaptador Gallio . Desde el punto de vista técnico, ya que IronRuby está en el horizonte, rSpec puede ser una opción para aquellos que están preparados para salir a rSpec . NBehave + NSpec podría ser el marco más antiguo con la mejor automatización, aunque me encontré luchando contra la sintaxis demasiado verbosa.

Los revisaría todos y elegiría el marco que mejor se adapte a su estilo de proyectos. Todos son OSS, por lo que es difícil de perder, el beneficio real es simplemente pasar a BDD.




Robot Framework también se puede usar con IronPython para hacer ATDD o BDD en .Net. Creo que las capacidades de expresión de Robot Framework son mejores que, por ejemplo. SpecFlow 's o NSpec ' s. No le obliga a utilizar una cierta sintaxis, sino que utiliza un enfoque basado en palabras clave. Si está probando aplicaciones web, tiene Selenium2Library que proporciona enlaces a Selenium WebDriver.




Por lo general, preferiría NBehave, combinado con MbUnit y los marcos de simulación / DI que necesite. Es un comentario justo de Jim Burger que NBehave es muy detallado, y a veces me encuentro cortando y pegando. Aún así, funciona muy bien. Estoy usando el complemento ReSharper de Gallio, así que solo aparece una ventana adicional. Aún no lo he probado con ccnet.




Concordion.NET no solo es compatible con BDD sino también con ATDD: http://assertselenium.com/2012/11/05/difference-between-tdd-bdd-atdd/ especificaciones están escritas en un lenguaje sencillo utilizando HTML. En mi humilde opinión este es uno de los beneficios de Concordion.NET. Los documentos HTML se pueden organizar en una estructura navegable para construir un sistema de documentación vivo . Y, dado que las pruebas se ejecutan en el sistema, puede estar seguro de que la documentación está siempre actualizada.




También puedes ver UBADDAS, específico de UAT encontrado en

https://github.com/KernowCode/UBADDAS

con una explicación aquí

http://kernowcode.wordpress.com/ (en junio de 2014)

Puedes escribir una prueba como esta

[Test]
public void IWantToRegisterANewUser()
{
  var user = new User();
  ICustomer customer = new Customer();

  SoThat(MyBusinessValue.IncreaseCustomerBase)
    .As(user)
    .Given(customer.Register)
    .When(customer.Confirm_Registration)
    .Then(customer.Login);
}

y produce esto

I want to register a new user
  so that Increase customer base
       as user
    given Register customer
     when Confirm customer registration
     then Login customer





Related