Skip to content

Latest commit

 

History

History
95 lines (72 loc) · 4.03 KB

9.Microservicio.md

File metadata and controls

95 lines (72 loc) · 4.03 KB

Objetivo 9: Implementación de un API REST con tests de integración

Descripción

Se trata de implementar el API REST para nuestra aplicación que se haya diseñado en el objetivo anterior.

Prerrequisitos

Haber pasado los tests del objetivo anterior, diseño de REST.

Explicación

Después de diseñar las rutas, es necesario implementarlas, y como en todo código, hay que testear todos los aspectos posibles usando herramientas de test automático.

En cuanto a este último, se debe de usar el mismo fichero de construcción que se haya usado en el hito anterior, siempre que se hayan usado las mismas tareas que se van a testear.

  • build hará una compilación o transpilación, o en general generará los ficheros que se vayan a desplegar efectivamente, que en muchos casos no serán los mismos que los que hay en el repositorio. Sólo será necesaria en caso de que haya que compilar o transpilar parte de los fuentes; en la mayoría de los lenguajes interpretados no siempre se usa (aunque en muchos casos se usan bundlers para integrar todos los fuentes en un solo fichero junto con las dependencias, que será más fácil de desplegar).
  • install instalará esos ficheros en un lugar donde se vayan a ejecutar, o hará otro tipo de instalaciones; este paso es alternativo al anterior en la mayoría de los lenguajes intepretados.
  • test ya estará ejecutándose desde antes, salvo que ahora se incluirán también tests de integración.

Los dos primeros casos no hacen falta juntos en muchos lenguajes de programación; en caso de usar un contenedor, ya estará todo instalado de antemano; en ese caso se puede sustituir el objetivo por un no-op que no haga nada, o simplemente no lanzar el segundo.

Como ya el proyecto ha llegado a un estado en el cual se puede desplegar como un servicio web, habrá que documentar cómo la implementación de las rutas se ajusta a las historias de usuario que se hayan planteado desde el principio (la justificación de la ruta en sí y sus nombres se habrá hecho ya en el anterior). No hace falta que en este punto todos los tests e historias estén implementadas, pero sí las suficientes para que se puedan llevar a cabo estos tests de integración.

Se recuerda que en este caso, la integración de la que se habla es la de otras bibliotecas que dependan de la clase o clases que sean la base del servicio web, y el propio servicio web. No es necesario ningún otro tipo de servicio, y especialmente desaconsejamos, en esta fase, integrar almacenes de datos de cualquier tipo.

Información adicional

Del curso 0 se puede consultar el material sobre tests de integración, y en el caso de que se empiecen a añadir accesos a datos, el tema de inversión de dependencias.

Entrega de la práctica

Habrá que subir los fuentes a GitHub y hacer un pull request al documento que describa las prácticas y que se anunciará en la web de la asignatura como es habitual.

Para los tests, se descargará el repositorio y se ejecutará ese comando con tres targets en secuencia de esta forma:

make build
make test

En ninguno de ellos tendrá que dar error. También se comprobará (aunque ya se hace en el hito anterior) que pasen los tests que se usará para ejecutar los tests de integración.

Objetivos

Tras la implementación de las rutas que se hayan planteado en el objetivo anterior, se tendrá que cubrir con tests de integración las rutas creadas y sus diferentes posibilidades (de acuerdo con las HUs que se hayan creado).

Se recuerda también que este es un hito de un proyecto, y como tal los tests para este hito incluyen los de todos los anteriores; el proyecto tendrá que seguir desarrollándose de acuerdo a lo indicado en el hito anterior y tener como mínimo la estructura que se creó en el hito 1.

Valoración

El alcanzar este objetivo avanzará, en principio, 10% de la puntuación de este apartado.