Code Monkey home page Code Monkey logo

tsiot_tp3's Introduction

header

Trabajo Práctico Nº3

Autor:

  • Agustín Curcio Berardi

Docente:

  • Esteban Volentini

Consignas

Práctica BDD (Behavior Driven Development)

Completar el desarrollo de una lista que almacena pares clave:valor iniciado en la clase utilizando BDD para el desarrollo de la misma.

Se deben implementar los siguientes requerimientos:

  1. La lista debe almacenar pares clave:valor.
  2. Las claves almacenadas en la lista deben ser únicas.
  3. Las claves son cadenas de texto.
  4. Se debe poder recuperar un valor a partir de una clave.
  5. Se debe poder actualizar el valor asociado a una clave.
  6. Se debe poder borrar una pareja a partir de la clave.
  7. Se debe poder recuperar la cantidad de elementos almacenados en la lista.
  8. Se debe poder recuperar una lista ordenada de las claves almacenadas en la lista.

Además de la funcionalidad implementada se evaluarán los siguientes aspectos del código:

  • Consistencia en los identificadores utilizados para los métodos y atributos de las clases.
  • Facilidad en la lectura del código respetando una adecuada indentación y separación con líneas en blanco de los diferentes bloques de código.
  • Documentación mediante comentarios en el código fuente y en los archivos de pruebas.

Solución propuesta

En la resolución propuesta, el archivo lista.js dentro de la carpeta src implementa todas las funcionalidades requeridas en las consignas del presente Trabajo Práctico. Se procuró escribir un código que sea simple y fácil de leer, atendiendo las pautas de prolijidad exigidas.

Por otro lado, dentro de la carpeta features se implementan todas las funcionalidades solicitadas de acuerdo al tipo de operación que se quiera realizar sobre la lista. Así, según los lineamientos del software Cucumber, se crearon adicionalmente los archivos funcionalidad_steps.js dentro de la carpeta steps_definitions. El código de producción se encuentra totalmente documentado, mientras que para los casos de prueba resulta suficiente la documentación que brindan las estructuras Given. When y Then.

El resultado que se obtuvo en la consola es el siguiente:

agustin@laptop:~$ npm test

> [email protected] test /home/agustin/MIoT/TSIoT/tp3
> cucumber-js --publish-quiet

......................

6 scenarios (6 passed)
22 steps (22 passed)
0m00.018s (executing steps: 0m00.006s)

footer

tsiot_tp3's People

Watchers

 avatar  avatar

tsiot_tp3's Issues

Los pasos piden unificarse en un solo archivo

No es necesario que los pasos este divididos en diferentes archivos en concordancia con los archivos de funcionalidades. En general si se dividen los pasos en diferentes archivos se lo hace para probar diferentes componentes, pero como esto se trata de un solo componente, generar un solo archivos de pasos es menos trabajo.

Esta sentencia debería eliminarse

En este escenario

Escenario: Borrar un elemento de la lista.
Cuando se agrega la clave "letras" con el valor "abcdef",
Entonces si se elimina la clave "clave",
Y si se busca la clave "clave", obtengo el valor NaN.

la sentencia

Cuando se agrega la clave "letras" con el valor "abcdef",

No cambia en nada el resultado de la prueba, yo creo que debería eliminarse porque solo confunde.

Las sentencias Entonces solo deben verificar resultados

La sentencias

Entonces si se elimina la clave "clave",
Y si se busca la clave "clave", obtengo el valor NaN.

son en realidad dos sentencias Cuando mezcladas con una Entonces. Esto debería reescribirse como

    Cuando si se elimina la clave "clave",    
    Y si se busca la clave "clave", 
    Entonces obtengo el valor NaN.

Dado que utilizaste comas para marcar correctamente el texto en castellano, no deberías tenes ninguna sentencia con dos coma en la misma linea, toda deberían desdoblarse

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.