Ожидая что-либо в качестве параметра для макета с помощью EasyMock - PullRequest
28 голосов
/ 29 августа 2011

Используя EasyMock, я хочу иметь возможность сказать, что я ожидаю, что конкретный метод вызывается на моем макете, но меня не волнует параметр, который используется для вызова макета.

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

/* Perform actions that will eventually invoke mock */

verify(mock);

Возможно ли это и как?

Кроме того, если я хочу принять какой-либо объект, производный от определенного базового класса, как мне это указать?

Ответы [ 2 ]

33 голосов
/ 29 августа 2011

Чтобы принять любой объект в качестве параметра:

mock.send(anyObject());

(Вам может потребоваться привести выражение к нужному типу.)

Кроме того, чтобы принять любой объект определенного типа, используйте:

mock.send(isA(SomeObject.class));
2 голосов
/ 29 августа 2011

Кроме того, если я хочу принять любой объект, производный от определенного базового класса, как мне это указать?

mock.send(anyObject(Myclass.class));
...