Un poco de Mockito

El objetivo de un Test unitario es probar la responsabilidad de una clase/componente pero normalmente una clase se relaciona con otras clases que deben ser instancionadas y funcionar correctamente (en un contexto Web necesitamos acceso a la sesión, request,…)

En muchos casos para simplificar el test unitario y controlar todos los aspectos es muy útil reemplazar los objetos que colaboran con dobles.

Estos dobles pueden ser de varios tipos:

· Dummy : es un objeto vacío (normalmente se usa solo para la compilación)

· Fake: es un objeto que tienen una implementación functional simplificada solo para cumplir el test (como una base de datos en memoria)

· Stub: un objeto con comportamiento codificado para un test o grupos de tests

· Mock: un objeto que tiene el comportamiento esperado para el component que suplanta y verifica las interacciones en su ciclo de vida

· Spy : un mock creado como proxy a un objeto real de modo que algunos métodos puedan set stubeados.

Mockito (además de ser la bebida preferida de Jesús, juor,juor) es un framework de Mocks muy útil para crear mocks y espías de forma sencilla y potente.

Para usar Mockito en nuestro proyecto simplemente añadiré la dependencia Maven:

Mockito puede usarse de dos formas:

1) Con el método estático mock

2) Con la anotación @Mock (en este caso nuestro runner JUnit debe ser MockitoJUnit4Runner)

Cómo funciona Mockito

Con los métodos Mockito.when() y thenReturn() Mockito nos permite decidir cómo debe comportarse el Mock:

Veamos un ejemplo sencillo:

Mockito ofrece estos métodos then:

Mockito ofrece estos comportamientos:

Podéis seguir conociendo Mockito en su documentación y bien con este libro:

(link)

Review Board: herramienta web revisión de código

Review Board es una Herramienta web para la revision que código.

Es una Herramienta muy configurable:

· Cada usuario tiene un Dashboard donde ve las revisiones de entrada y de salida asignadas a él:

· Vista con diferencias:

· Comentarios en diferencias:

Para funcionar necesita:

· Una base de datos: MySQL, PostgreSQL o SQLite

· Un web Server con soporte Python: Apache o lighttpd

Podéis ver el procedimiento de instalación aquí.

Aparte de un UI ofrece un API Web (REST) para acceder a todos los servicios: http://www.reviewboard.org/docs/manual/1.6/webapi/

Azure soporta Linux

Hace ya un mes que la nube pública de Microsoft Azure da soporte a sistemas operativos basados en Linux.

Ya se soportan Ubuntu, SUSE y CentOS.

Uno de los primeros en soportarse ha sido Ubuntu a través de Canonical que entrega imágenes oficiales de Ubuntu para Azure y soporte comercial.

Además Azure permite crear sitios no sólo sobre .Net si no sobre alternativas open source como WordPress, Joomla!, DotNetNuke y Drupal.

Podéis encontrar sus nuevas características aquí.