Неожиданный вызов метода, несмотря на наличие насмешливого оператора для цикла FOR: EasyMock - PullRequest
0 голосов
/ 15 октября 2018

Мне трудно разрешить непредвиденные проблемы с вызовом метода с помощью EasyMock, который выполняет вызов DAO внутри цикла for.

for ( Car obj : carList) {
    objModified=carHelper.addPrice(obj);
    carServiceDao.create(objModified);
}

Сценарии тестирования:

carServiceDao = EasyMock.createMock(ICarDaoDao.class);

EasyMock.expect(carServiceDao.create(EasyMock.anyObject(Car.class))).andReturn(carList);

Сценарий ошибки: java.lang.AssertionError: Неожиданный вызов методаObjectMethodsFilter.java:94) в org.easymock.internal.ClassProxyFactory $ MockMethodInterceptor.intercept (ClassProxyFactory.java:97) в ###################################. ###### Impl $$ EnhancerByCGLIB $$ b59c96b7.create () в ✽. Когда работает автосервис (CarCalculations.feature: ##)

Другое тестированиеСценарий:

EasyMock.expect(carServiceDao.create(carList)).andReturn(carList);

java.lang.AssertionError: Неожиданный вызов метода carServiceDao.create (Car [имя: ###, цвет: ####, fuel: ###]):в org.easymock.internal.MockInvocationHandler.invoke (MockInvocationHandler.java:44) в org.easymock.internal.ObjectMethodsFilter.invoke (ObjectMethodsFilter.java:94) в org.easymock.internal.ClassProxyFactory $ MockMethodInterceptor.intercept (ClassProxyFactory.java:97) в #############################. ###### Impl $$ EnhancerByCGLIB $$ b59c96b7.create () в hen. Когда работает автосервис (CarCalculations.feature: ##)

1 Ответ

0 голосов
/ 31 октября 2018

Не могу помочь.Мне нужен полный пример.Но часть воспроизведения отсутствует.

Мне кажется, проблема в том, что EasyMock.expect(carServiceDao.create(EasyMock.anyObject(Car.class))).andReturn(carList); записывает только ОДИН вызов.И тогда цикл делает много звонков.Таким образом, во время второго вызова будет выдана ошибка, которую вы видите.

Выполнение чего-то вроде EasyMock.expect(carServiceDao.create(EasyMock.anyObject(Car.class))).andStubReturn(carList); должно сработать.

...