Prueba De Integracion Dummy con Ant
En diferentes oportunidades nos surge la necesidad de realizar pruebas de Integración contra servidores o servicios que no están disponibles por X motivo.
Este es un ejemplo de solución para un servicio que consume un Conector, el cuál le pega a una plataforma que no está disponible. Utilizando una clase Mock y un poco de ant, podemos generar un distribuible que nos sirva para probar el servicio de manera Mock.
Contexto
Supongamos que tenemos un servicio que estamos exponiendo, que internamente se comunica con un conector mediante una librería cliente. Lo hace mediante este Dao
@Repository
public class ConectorDaoImpl implements ConectorDao {
/** * Conector delegate. */ @Autowired private ConnectorRemoteBusiness conector;
/** * @{@inheritDoc}. */ @Override public void llamarAConector(String parametro) { // código... }
}
Ahora supongamos que para nuestros test de componentes nos generemos una implementación mock del cliente del conector, para manejar datos dummy para nuestras pruebas:
public class ConnectorRemoteBusinessMock implements ConnectorRemoteBusiness {
@Override public String invocarConector(String parametro) throws RemoteException { String respuesta = null;
switch (parametro) { case 1: respuesta = "Respuesa1" break; case 2: respuesta = "Respuesa2" break; case 3: respuesta = "Respuesa3" break; default: respuesta = "default"; break; } return respuesta; }
}
Y en los test de componentes, configuramos Spring para que al Dao se le inyecte la implementación Mock.
Ahora, supongamos que nuestro servidor sigue caído, y necesitamos generar un distribuible que utilice este Dao con la inyección del delegate mock. Podemos tunear las tareas ant para realizar dicha acción. Ahora vamos a ver como.