EasyMock: isA () терпит неудачу на правильном классе - PullRequest
1 голос
/ 27 августа 2011

Я говорю фиктивному объекту ждать метода с командой: mockObject.registerSQLDriver (Isa (SomeName.class));

Во время выполнения метод вызывается точно с экземпляром класса SomeName, но тест завершается неудачно, сообщая, что «неожиданный вызов метода registerSQLDriver ()»

Что может вызвать эту проблему?

Вот код:

resetToDefault(_SQLDriverManager);
_SQLDriverManager.registerSQLDriver(isA(SQLDriver.class));
expectLastCall().anyTimes();
replay(_SQLDriverManager);

1 Ответ

0 голосов
/ 15 мая 2012

Возможно, вы издеваетесь над одним экземпляром и тестируете другой.Чтобы проверить это, вы должны добавить параметр name в макет создания:

Comparable<String> mock01 = EasyMock.createMock("M1", Comparable.class);
Comparable<String> mock02 = EasyMock.createMock("M2", Comparable.class);

EasyMock.expect(mock01.compareTo(EasyMock.isA(String.class))).andReturn(1);
EasyMock.replay(mock01, mock02);

mock02.compareTo("Test");

EasyMock.verify(mock01, mock02);

В этом случае тест не пройдёт с сообщением:

Неожиданный вызов метода M2.compareTo ("Test")

вместо:

Неожиданный вызов метода Comparable.compareTo ("Test")

...