Esperar cualquier cosa como parámetro para burlarse usando EasyMock


Usando EasyMock quiero poder decir que espero un método específico llamado en mi mock, pero no me importa el parámetro que se usa para llamar al mock.

SomeInterface mock = EasyMock.createMock(SomeInterface.class);
mock.send(/*anything*/);
replay(mock);

/* Perform actions that will eventually invoke mock */

verify(mock);

¿Es esto posible, y cómo?

Además, si quiero aceptar cualquier objeto que se derive de una clase base específica, ¿cómo lo especifico?

Author: Bjarke Freund-Hansen, 2011-08-29

2 answers

Para aceptar cualquier objeto como parámetro:

mock.send(anyObject());

(Es posible que necesite convertir la expresión al tipo deseado.)

Además, para aceptar cualquier objeto de un tipo específico, use:

mock.send(isA(SomeObject.class));
 33
Author: Péter Török,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-27 09:51:50

Además, si quiero aceptar cualquier objeto que se deriva de un clase base específica, ¿cómo puedo especificar eso?

mock.send(anyObject(Myclass.class));
 2
Author: jbleduigou,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-29 09:33:10