viernes, 7 de mayo de 2010

Herramientas para Pruebas Unitarias en Java

Para los que no sepan que es una prueba unitaria (unit test), aquí va la definición tomada de Wikipedia:

En programación, una prueba unitaria es una forma de probar el correcto funcionamiento de un módulo de código. Esto sirve para asegurar que cada uno de los módulos funcione correctamente por separado.
Un "módulo de código" o "unidad" es, usualmente, un método/procedimiento/función. Las características más resaltantes es que son (o deberían ser) automatizadas, completas, repetibles e independientes.

En este post me enfoco en la característica de "independencia". Es decir, que una prueba pueda ejecutarse sin afectar otras pruebas y sin depender de otros módulos de la aplicación, como son bases de datos, servidores HTTP (web) o SMTP (correo electrónico), etc.

Muchas veces, ya sea por ignorancia, inexperiencia, o mera flojera, he visto pruebas unitarias que invocan directamente a los servicios que mencioné anteriormente. Por ejemplo, una prueba para el módulo que envía correos electrónicos que depende de un servidor de correo en particular (¿mail.cantv.net?), o que espera que cierta data ya esté presente en la base de datos, o que algún archivo esté disponible en el sistema. Esto está bien para las Pruebas de Integración, pero no para una simple prueba unitaria.

Buscando en la Web métodos para librarnos de esas dependencias (al menos cuando se programa en Java), encontré las siguientes herramientas:

  • JMock - Una librería que permite crear objetos simulados (mock objects).
  • Dumbster - Un simulador de servidor de correo electrónico, muy fácil de usar.
  • NanoHTTP - Un servidor web tan pequeño que consiste de una única clase.
  • HSQLDB - Un servidor de base de datos que puede ejecutarse en memoria. Claro que en mi opinión es mejor usar un mock object creado con JMock.

Bueno, si encuentro alguna otra la pondré por aquí.

viernes, 5 de marzo de 2010

Una alternativa cuando no se tiene permisos de administración en windows

Hace unos días pedí que me actualizaran un programa y me dijeron que "tenía que abrir un ticket". Como no tengo permiso para abrir tickets, pues tuve que decirle al máisimo lídel. El máisimo lídel respondió "OK", pero aún nada.

Ahora me pasaron un archivo .docx, pero el OpenOffice que tengo (versión 2.4) no puede abrirlo, y no puedo actualizarlo porque también tendría que abrir un ticket.

No sé ustedes, pero a mí no me gusta estar halándole bolas a la gente, así que he estado buscando alternativas. Recientemente conseguí esta página:

http://portableapps.com/

Allí conseguí varios programas que no necesitan instalación. Simplemente los descomprimes en una carpeta y listo. Tienen versiones "portátiles" de OpenOffice, Firefox, incluso Java (el JRE).

Un pana me comentó que hay aplicaciones de seguridad capaces de detectar estos programas y detener su ejecución, pero creo que no es el caso en esta empresa (o al menos nadie se ha quejado aún).

Espero esto les sirva de utilidad.

jueves, 13 de diciembre de 2007

El malvado meme que me hizo crear este blog...

... y a regañadientes, pero qué más da.

Culpo a O3 por esto, y es que desde que puso el malvado meme en su blog no lo he podido sacar de mi cabeza (como buen meme). Así que, como venganza, y para no seguir "chuleando" su blog, escribo aquí mi meme:

Eh... antes que nada, de qué trata el asunto: Yo les pongo 9 afirmaciones, 3 verdaderas, 3 no tan verdaderas y 3 falsas, y luego ustedes se devanan los sesos tratando de adivinar cuáles son cuáles.
Ahora sí, aquí van:

  1. Quise ser ingeniero en computación desde la primera vez que toqué una computadora.
  2. Siempre viví en una casa compartida con varias familias hasta que me mudé a Venezuela.
  3. Fui lateral izquierdo en un equipo de fútbol y los delanteros rara vez conseguían driblarme.
  4. Mi primera vez fue a los 25 años.
  5. Mi primera novia fue una graduada de la USB.
  6. Me gusta todo tipo de música.
  7. He tenido tres grandes amores en mi vida. Una nunca lo supo, otra la supo y me rechazó, la tercera me aceptó y ahora estoy casado con ella.
  8. Nunca le he sido infiel a mi esposa.
  9. La última vez que entré en una iglesia fue cuando se casó mi hermana.