EasyMock es una libreria muy util para hacer pruebas unitarias con JUnit. Nos sirve para crear cualquier objeto fantasma (mock) y hacer que devuelva un resultado concreto para una entrada concreta.

Por ejemplo, si queremos probar un servicio que necesita un DAO para obtener un dato, podemos crear un DAO fantasma (mock) que realice esa funcion y asi librarnos de dependencias y probar el servicio unitariamente.

Para usar EasyMock tan solo hay que hacer 3 cosas:

  1. Crear el objeto fantasma (mock) con createMock
     IMyDAO mockDAO = EasyMock.createMock(IMyDAO.class);
     
  2. Proporcionar los parametros de entrada concretos y los objetos de salida concretos (si es necesario) con expect:
     DAOPK pk = new DAOPK("111"); // clave de lo que se busca
     DAOReturn return = new DAOReturn("Alex");
     EasyMock.expect(mockDAO.find(pk)).andReturn(return);
     
  3. Generar la implementacion del mock con replay:
     EasyMock.replay(mockDAO);

Asi ya tendriamos un mock para el DAO y podriamos probar el servicio pasandole este mock:

 MyService service = new MyService();
 service.setDao(mockDAO);
 
 Customer customer = new Customer("111");
 service.findCustumer(customer);