Giter Site home page Giter Site logo

dojoatdd's Introduction

Dojo Atdd

Objetivos

Los objetivo de este dojo son los siguientes:

  • Demostrar cómo desarrollar usando ATDD.
  • Duración unas 2 horas.
  • Descubrir mediante un caso práctico ventajas e inconvenientes.

Ejercicio previo

El ejecicio previo sirve para familiarizarse con las tecnologías sobre las que va a versar el coding dojo.

Cada participante deberá hacer un fork de este proyecto e implementar la siguiente feature:

#language: en

Feature: Heartbeat
    In order to check that the server is up
    As a client application
    I want to know the server status

    Scenario: GET Heartbeat
        When I request the heartbeat
        Then the response code must be 200
        

Después de hacer el fork, para poder ejecutar el programa hay que seguir las instrucciones que aparecen en la secciones posteriores.

En el dojo usaremos cucumber. En su página hay gran cantidad de información muy útil a la hora de poder implementar este ejercicio.

Requisitos del sistema

Antés de empezar el sistema debe tener instalada una versión actualizada de nodejs. Se puede encontrar en https://nodejs.org/en .

  • NodeJS: ~4.4.5
  • NPM: ~2.15.5

Uso

El primer paso es instalar las librerías que se necesitan para ejecutar el dojo, para ello hay que ejecutar:

npm install

Para arrancar el servidor hay que ejecutar:


npm start

Una vez arrancado el servidor, desde otro terminal para pasar las pruebas de aceptación:


npm run cucumber

Además para ejecutar los test de unitarios:

npm run test

Comprobación de la calidad del código:

npm run jshint

Kata

Se ha elegido un kata de la lista de katas clásicos de la lista de Dave Thomas http://codekata.com/kata/kata09-back-to-the-checkout. Es un kata que consiste en añadir productos a la cuenta de un supermercado. Existe una lista de precios cerrada con la que se calculara el valor total de la cuenta del supermercado.

Las features no implementadas propuestas para el dojo

Implementación

La implementación se hará usando un servicio rest implementado en nodejs. El servicio implementa el siguiente API:

Crear un nuevo checkout

POST /api/checkout

Response 201

Location: /api/checkout/{id}

Dar el valor de un checkout existente

GET /api/checkout/{id}

Response 200

Response: {
   total: {
     value: 20,
     currency:"EUR"
   }
}
POST /api/checkout/{id}/items

Response 201

Location: /api/checkout/{id}/items/{id}

dojoatdd's People

Contributors

rai22474 avatar icedfiend avatar jhigueras avatar

Watchers

James Cloos avatar Manuel Eusebio de Paz Carmona avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.