Pruebas unitarias usando testem

  • Por
  • 28 de enero de 2013
  • Valoración:
  • 1 Comentarios
  • Javascript, Programación
Un completo ejecutor que hace las pruebas unitarias más atractivas.
 
La nueva tendencia en lo que respecta la ingeniería de software son las pruebas unitarias en el código que escribe el programador de cualquier proyecto, ya sea pequeño o grande. Hace unos cuantos años el programador se encargaba solamente del código y las pruebas se asignaban a la persona encargada de las pruebas dentro del proyecto, pero había un tema muy delicado: el individuo dedicado a realizar las pruebas por lo general no sabía de programación. Entonces si existía un error, el proceso de desarrollo de software daba marcha atrás y había que esperar a que el programador resolviera el error y entonces el código pasaba por pruebas. Muchos ingenieros de software vieron que esto tomaba algo que una vez se pierde, no regresa: "El Tiempo" el insumo más invaluable que se tiene en todo proyecto.

La solución que en la actualidad se ofrece es que el programador realice pruebas unitarias de su propio código, pero como si se alega en la ingeniería de software que el programador no debe hacer pruebas de su propio código, aunque en la actualidad muchos lenguajes de programación y frameworks tienen sus librerías para realizar pruebas unitarias. Un lenguaje que en la actualidad ha tomado mucho auge además de un sinfín de librerías y frameworks que le dan mucha relevancia en la actualidad, es el gran "JAVASCRIPT" pero en este artículo hablaremos de "Testem", un ejecutor de pruebas unitarias en javascript, ya que para muchos programadores es algo muy tedioso realizar pruebas unitarias en este lenguaje que se utiliza en la gran mayoría de sitios web a nivel mundial.

“testem” como dice en su página web hace muy fácil la implementación de pruebas en tu código javascript, además se puede instalar en los sistemas operativos más usados por programadores como Windows, Linux y Mac os; por lo tanto, no existen excusas para no utilizar esta excelente herramienta. La dirección del repositorio donde se encuentra Testem es github.com/airportyh/testem y se puede ver el código fuente.

Comentarios que se han brindado acerca del creador y de algunos programadores es que es muy sencillo de instalar y usar mientras se desarrolla, además que es una manera sencilla y divertida de realizar pruebas unitarias.

Atributos

Las características que testem tiene es que fue construido con Nodejs aparte de que es agnóstico a los frameworks de pruebas, lo que significa que no está ligado a un tipo de framework de pruebas específico, esto se debe a que no todos los programadores al momento de hacer pruebas no usan los mismos frameworks o librerías por ende testem se apega a esta realidad. Testem soporta los siguientes, que son:
  • Jasmine
  • QUnit
  • Mocha
  • Buster.js
  • también puede trabajar con otros framework a través de adaptadores.
Por otro lado se pueden hacer pruebas del lado del servidor ya que usa frameworks como
  • Express
  • socket.io
Otra de las características es que correr las pruebas en la gran mayoría de navegadores que se usan en la actualidad, o los más famosos mejor dicho.
Posee la facilidad de poder implementar dos tipos de casos de uso, los cuales son los siguientes:
  • Test-Driven-Development(TDD) está diseñado para verificar el flujo de trabajo del código.
  • Continuous integration(CI) diseñado para trabajar con los famosos servidores de integración continua como “Jenkins” o “Teamcity”.
Además tiene soporte para preprocesadores como
  • Coffeescript
  • Browserify
  • JSHint/JSLint
  • y cualquier otro.
Por otro lado, otro atributo que posee este excelente ejecutor de pruebas es que tiene una interfaz de usuario basada en texto como muestra la siguiente imagen.

Al ver la primera pestaña se nota que las pruebas unitarias se están corriendo en el navegador Mozilla Firefox, más adelante se muestra un pequeño ejemplo. El mensaje que muestra la consola es que no se están corriendo pruebas unitarias todavía.

Después de ver las grandes y excelentes características que nos brinda este ejecutor de pruebas unitarias solo nos queda instalarlo y poder disfrutar de sus bondades.

Instalar

La instalación de testem es sencilla y se encuentra en el sitio web con las debidas instrucciones, pero antes de instalarlo se debe tener en cuenta que necesita la previa instalación de ciertos requisitos que se presentaran más adelante, para que funcione de manera correcta.

Procedemos con los pasos para poder instalar testem en nuestro sistema operativo.

Requisitos:

  • Instalar Nodejs (sin él es imposible instalar nuestro ejecutor de pruebas)
  • NPM (En las últimas versiones de nodejs ya viene por defecto)
    En el instante en que tengamos estos requisitos instalados en nuestra computadora, se realizan los pasos para obtener lo que se desea.
npm install testem -g (El argumento -g es para que el comando sea visto a nivel global del sistema operativo).

Ejemplo sencillo

Lo primero que se hará son dos archivos llamados “hola.js” y “hola_spec.js” dentro de una carpeta llamada “pruebas unitarias”

hola.js

function hola(){
return “Hola Mundo”;
}

Descripción
La función hola retorna una cadena que tiene el mensaje “Hola Mundo”.

hola_spec.js

describe(‘hola’, function(){
   it(‘Hola Mundo’, function(){
   expect(hello()).toBe(‘Hola Mundo’);
});
});

Descripción
La primera línea describe el nombre de la prueba que en este caso es “hola”
La segunda línea nos refleja el mensaje o resultado que se debe esperar
La última línea realiza ejecución de la prueba y los resultados los veremos en las siguientes imágenes.

Ahora, para correr las pruebas abrimos la consola y nos dirigimos a la carpeta y escribimos el comando “testem” y obtendremos las siguientes salidas mostrada en las imágenes.

Y si vas al navegador de tu preferencia y escribes "localhost:7357" observarás el listado de las pruebas resueltas. Pero si utilizas otro navegador, que en este caso es Google Chrome la salida por consola será la siguiente:

Se presenta una segunda pestaña que corresponde al nuevo navegador que está corriendo las pruebas. Es una excelente experiencia poder contar con estos tipos de herramienta y poder implementarlo en futuros proyectos.

Ya sabemos qué nos depara con Testem. Solamente falta animarse a usarlo en nuestros proyectos y hacer las pruebas unitarias de javascript más sencilla y la mejor frase para cerrar este artículo sería: “Happy testing!”.

Autor

Victor Tejada Yau

Soy Victor Tejada Yau mejor conocido en el mundo de la informática como “victortyau” , ingeniero informático de profesión pero profundamente apasionado por la programación me gusta aprender lenguajes de programación(java, php, html5, nodejs, coffeescript, css y google web toolkit, ruby on rails y muchos más) y naturales(inglés, portugués y catalán), pero soy un hombre con fe en DIOS desde el 2007 y hasta el día de hoy mi vida ha cambiado al 100%, mis pasatiempos favoritos son “La lectura, La Fotografía y Viajar”. Uno de mis grandes sueños es poder estudiar un master en redes de telecomunicaciones debido a que me gusta la investigación en el campo de las redes inalámbricas, en la prestigiosa universidad politécnica de Valencia, España. Sinceramente me gusta lo que hago y mi principal filosofía es “haz lo que te gusta y disfrútalo al máximo”.
Ingeniero informático

Comentarios

Chuy el rey

12/3/2013
Instalacion de TESTEM en Linux paso a paso.
Hola porfa nesecito ayuda para instalar TESTEM (pruebas unitarias del código que creas) en LINUX lo he intentado pero no puedo y la informacion que he buscado no me sirve porfa nesecito ayuda

Compartir