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

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

/* Perform actions that will eventually invoke mock */

verify(mock);

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

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

31
Bjarke Freund-Hansen 29 Авг 2011 в 12:46

2 ответа

Лучший ответ

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

mock.send(anyObject());

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

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

mock.send(isA(SomeObject.class));
36
Zoltán 27 Мар 2014 в 09:51

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

mock.send(anyObject(Myclass.class));
2
jbleduigou 29 Авг 2011 в 09:33