Haciendo tests 'end-to-end' con Mocha y Chakram

Published on
2 minutos

Supongamos que tenéis una API REST, supongamos que la queréis testear y supongamos que no sabéis como hacerlo. Igual estamos suponiendo demasiadas cosas, pero si algo de esto os suena, os propongo hacer los tests con Chakram y con Mocha.

Mocha is a JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun

Mocha es un framework para test en JavaScript que hace el testeo asíncrono sencillo y divertido, por lo menos eso dicen sus creadores. Básicamente lo que nos da Mocha es el entorno de test, si a eso le añadimos una librería de aserciones (Chai, Jasmine, Chakram..) ya lo tenemos todo.

Chakram is an API testing framework designed to perform end to end tests on JSON REST endpoints.

En mi caso me he decantado por Chakram que es una librería de aserciones basada en Chai. Las principales características que posee Chakram son estas:

  • Aserciones específicas de HTTP:

    • Códigos de estado.
    • Presencia de Cookie y su valor.
    • Presencia de Header y su valor.
    • Valores del JSON
    • Estructura del JSON.
    • Compresión.
    • Tiempos de respuesta.
  • Soporte para Plugins.

  • Aserciones personalizadas.

  • ...

Quizás la mejor forma de ver como funciona es probándolo. Esta mañana me han dejado dar una pequeña 'charla' en el trabajo sobre esto y he creado un pequeño repositorio en Github en el que usando Docker se crea una API y se testea sus endpoints contra los de la API de Spotify. Principalmente comparando datos (Esquema del JSON, valores, estado).

Si os parece interesante, montadlo en local. Si tenéis problemas dejadme un comentario y os contestaré lo antes posible.

Saludos.