Desarrollo impulsado por el comportamiento - Pepino

Cucumber es una herramienta que admite especificaciones ejecutables, automatización de pruebas y documentación viva.

El desarrollo impulsado por el comportamiento amplía la especificación por ejemplo. También formaliza las mejores prácticas de desarrollo basado en pruebas, en particular, la perspectiva de trabajar desde afuera hacia adentro. El trabajo de desarrollo se basa en especificaciones ejecutables.

los key features de las especificaciones ejecutables son las siguientes:

  • Las especificaciones ejecutables son:

    • Derivado de ejemplos, que representan los comportamientos del sistema.

    • Escrito con la colaboración de todos los involucrados en el desarrollo, incluidas las empresas y las partes interesadas.

    • Basado en criterio de aceptación.

  • Las pruebas de aceptación que se basan en las especificaciones ejecutables están automatizadas.

  • Se utiliza un lenguaje omnipresente compartido para escribir las especificaciones ejecutables y las pruebas automatizadas de manera que:

    • Se utiliza terminología específica de dominio durante todo el desarrollo.

    • Todos, incluidos los clientes y las partes interesadas, hablan sobre el sistema, sus requisitos y su implementación, de la misma manera.

    • Los mismos términos se utilizan para discutir el sistema presente en los requisitos, documentos de diseño, código, pruebas, etc.

    • Cualquiera puede leer y comprender un requisito y cómo generar más requisitos.

    • Los cambios pueden adaptarse fácilmente.

    • Se mantiene la documentación en vivo.

Cucumber ayuda con este proceso, ya que une las especificaciones ejecutables con el código real del sistema y las pruebas de aceptación automatizadas.

La forma en que lo hace está diseñada para que los clientes y los desarrolladores trabajen juntos. Cuando pasa una prueba de aceptación, significa que la especificación del comportamiento del sistema que representa se ha implementado correctamente.

Prueba de aceptación típica de pepino

Considere el siguiente ejemplo.

Feature − Sign up

  • Registrarse debe ser rápido y amigable.

  • Escenario: registro exitoso

    • New los usuarios deben recibir un correo electrónico de confirmación y ser recibidos personalmente.

    • Given He optado por registrarme.

    • When Me registro con datos válidos.

    • Then Debería recibir un correo electrónico de confirmación.

    • And Debería ver un mensaje de saludo personalizado.

En este ejemplo, podemos ver que:

  • Las pruebas de aceptación se refieren a Features.

  • Las funciones se explican por Scenarios.

  • Los escenarios consisten en Steps.

La especificación está escrita en un lenguaje natural en un archivo de texto sin formato, pero es ejecutable.

Trabajo de pepino

Cucumber es una herramienta de línea de comandos que procesa archivos de texto que contienen las características en busca de escenarios que se puedan ejecutar en su sistema. Entendamos cómo funciona el pepino.

  • Hace uso de un montón de convenciones sobre cómo se nombran los archivos y dónde están ubicados (las carpetas respectivas) para facilitar el inicio.

  • Pepino le permite mantener especificaciones, pruebas automatizadas y documentación en el mismo lugar.

  • Cada escenario es una lista de pasos que describen las condiciones previas, acciones y condiciones posteriores del escenario; Si cada paso se ejecuta sin ningún error, el escenario se marca como aprobado.

  • Al final de una carrera, Cucumber informará cuántos escenarios pasaron.

  • Si algo falla, proporciona información sobre lo que falló para que el desarrollador pueda progresar.

En Pepino, Features, Scenarios, y los pasos están escritos en un idioma llamado Gherkin.

Gherkin es un texto sin formato en inglés (o uno de más de 60 idiomas) con una estructura. Gherkin es fácil de aprender y su estructura te permite escribir ejemplos de manera concisa.

  • Cucumber ejecuta sus archivos que contienen especificaciones ejecutables escritas en Gherkin.

  • Pepino necesita definiciones de pasos para traducir los pasos de pepinillo en texto plano en acciones que interactúen con el sistema.

  • Cuando Cucumber ejecuta un paso en un escenario, buscará una definición de paso coincidente para ejecutar.

  • Una definición de paso es un pequeño fragmento de código con un patrón adjunto.

  • El patrón se utiliza para vincular la definición de paso a todos los pasos coincidentes, y el código es lo que Cucumber ejecutará cuando vea un paso Gherkin.

  • Cada paso va acompañado de una definición de paso.

  • La mayoría de los pasos recopilarán información y luego se delegarán en un marco que sea específico para el dominio de su aplicación para realizar llamadas en su marco.

Cucumber admite más de una docena de plataformas de software diferentes. Puede elegir la implementación de pepino que más le convenga. Cada implementación de Cucumber proporciona la misma funcionalidad general y también tienen su propio procedimiento de instalación y funcionalidad específica de la plataforma.

Mapeo de pasos y definiciones de pasos

La clave de Pepino es el mapeo entre Pasos y Definiciones de Pasos.

Implementaciones de pepino

A continuación se muestran las implementaciones de Pepino.

Ruby / JRuby
JRuby (usando Cucumber-JVM)
Java
Groovy
.NET (usando SpecFlow)
JavaScript
JavaScript (usando Cucumber-JVM y Rhino)
Clojure
Gosu
Lua
PHP (usando Behat)
Jython
C ++
Tcl

Integración del marco

A continuación se muestran las implementaciones de Framework.

Ruby on Rails
Selenio
PicoContainer
Marco de primavera
Watir