Archive for the ‘Testing’ Subject

Testing Node Js

Thursday, February 7th, 2013

Al momento de desarrollar un sistema mas allá de la tecnología a utilizar, una de las primeras cosas que se debe analizar es como lo vamos a testear y como desarrollarlo para que sea testeable. A partir de esta premisa les dejo este post de testing con NodeJs utilizando Mocha.

Mocha es un framework de testing muy conocido en la comunidad de Ruby el cual  fue adaptado para NodeJs incorporando facilidades para testear comportamiento asincrónico. Además utilizaremos should.js (assertion library) la cual nos permite mejorar la legibilidad y expresividad de nuestros tests mediante DSL.

(more…)

Builders a la DSL en Java

Friday, April 27th, 2012

Muchos de los que escriben unit test, seguramente se habrán topado con la necesidad de crear objetos para el Fixture de los diferentes tests.

Una primera solución a esta cuestión consiste en crear los objetos del fixture directamente en el test method.

Supongamos que el objeto necesario en el fixture es un Person que requiere un nombre, apellido y documento para poder existir, entonces tendríamos el siguiente código:

public void testMethod() {
Person person = new Person("Pepe", "Muleiro", new Document(Type.A, new Number(23232222)));
....
}

En cuanto aparece otro test method que requiere un person como en este caso, empezamos a notar cierta duplicación.

También, muchas veces se da que en algunos test, no nos importa el Person, solo requerimos uno para pasarlo por parámetro a algún otro objeto, o para crear otro.

(more…)

TestNG vs. JUnit

Thursday, September 1st, 2011

Si hablamos de frameworks para correr test en Java, a casi todos  (para no decir todos) se le viene a la cabeza JUnit, pero hace un par de años surgió TestNG, un framework bastante completo, éste fue pionero el uso de annotations para testing en Java. Hasta ese momento  existía JUnit 3, que no contaba con esta funcionalidad aunque luego en su versión 4 incorporó el uso. En este post vamos a analizar algunas de las funcionalidades, usos, ventajas y desventajas de cada uno.

(more…)

Testing de Aplicaciones Web con Selenium

Saturday, June 19th, 2010

Selenium es una herramienta de código abierto para realizar test de aplicaciones web. Esta compuesto por 3 aplicaciones: Selenium IDE, Selenium Core y Selenium Remote Control.

Selenium IDE

Selenium IDE es una extensión de Firefox, que nos permite guardar las acciones realizadas sobre un sitio, para luego replicarlas a modo de testing. El output es un archivo html que luego podemos usar en nuestra aplicación para replicar la secuencia de acciones en un test.

También es posible decirle al Selenium IDE que nos muestre el código generado en Java, C #, Perl, Ruby, etc. Para empezar a jugar con Selenium IDE ahora, instalamos la extensión y luego vamos a Tools –> Selenium IDE.

Obviamente podemos escribir los test a manos, pero puede volver algo complejo, por eso la característica principal de esta extensión es la facilidad de uso y la rapidez con la que se pueden crear test no triviales.

(more…)

Behaviour Driven Development con Cucumber

Thursday, March 18th, 2010

Cucumber es una herramienta que permite ejecutar tests a partir de una descripción funcional en texto plano.

El poder de Cucumber radica en la facilidad de describir un comportamiento determinado. Esta descripción se realiza en Gherkin, un Business Readable DSL que permite que cualquier persona defina reglas sin necesidad de contar con conocimientos de programación. Existen implementaciones en más de 37 idiomas y además los tests escritos en Gherkin sirven automáticamente como documentación.

El siguiente es un ejemplo de la sintaxis de Ghekin:
Ejemplo de Gherkin
Estos tests brindan la posibilidad de ser verificados por analistas y personas no técnicas que quizás sean expertos en el dominio de la aplicación.

(more…)