Существует тестовый код, который является исключением, и я не могу понять - почему?Исключение Mockito
Исключение:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Код испытания:
@Test
public void testUpdateBookingFormData() throws Exception {
when(registrantFormService.getRegistrantFormByUUID(any(String.class))).thenReturn(registrantForm);
when(bookingService.getById(any(Long.class))).thenReturn(booking);
when(eventFieldRepository.findByEventIdOrderBySortIndexAsc(any(Long.class))).thenReturn(eventFieldList);
when(registrantAggregateService.getRegistrantDataAggregate(any(RegistrantKey.class))).thenReturn(registrantAggregate);
when(bookingFormStrategiesFactory.chooseStrategy(any(Long.class))).thenReturn(bookingFormStrategy);
when(bookingFormValidatorsFactory.getValidatorForForm(any(Booking.class))).thenReturn(validator);
when(validator.validate(any(BookingFormBean.class))).thenReturn(true);
when(bookingFormStrategy.getFormByKey(any(Booking.class), any(RegistrantKey.class))).thenReturn(bookingFormBean);
BookingFormsCollectionBean bookingFormsCollectionBean = bookingFormsService.updateBookingFormData(eq(booking.getKey().getVisitorId()), anyString(), anyMapOf(String.class, String[].class));
assertThat(bookingFormsCollectionBean, is(IsNull.notNullValue()));
}
Что я делаю неправильно?
UPD: Полный код http://pastebin.com/rprLG8Nt
UPD2: Это полное сообщение об исключении:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
1 matchers expected, 3 recorded:
-> at com.evm.front.service.logic.bookingprocess.BookingFormsServiceTest.testUpdateBookingFormData(BookingFormsServiceTest.java:106)
-> at com.evm.front.service.logic.bookingprocess.BookingFormsServiceTest.testUpdateBookingFormData(BookingFormsServiceTest.java:106)
-> at com.evm.front.service.logic.bookingprocess.BookingFormsServiceTest.testUpdateBookingFormData(BookingFormsServiceTest.java:106)
This exception may occur if matchers are combined with raw values:
//incorrect:
someMethod(anyObject(), "raw String");
When using matchers, all arguments have to be provided by matchers.
For example:
//correct:
someMethod(anyObject(), eq("String by matcher"));
For more info see javadoc for Matchers class.
at com.evm.front.service.logic.bookingprocess.BookingFormsService.updateBookingFormData(BookingFormsService.java:202)
at com.evm.front.service.logic.bookingprocess.BookingFormsServiceTest.testUpdateBookingFormData(BookingFormsServiceTest.java:106)
at org.mockito.internal.runners.JUnit45AndHigherRunnerImpl.run(JUnit45AndHigherRunnerImpl.java:37)
at org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:62)
Как вы создаете макет объектов? –
@BilboBaggins хорошо, я добавляю весь свой код в это http://pastebin.com/rprLG8Nt –
В чем полное исключение? То есть какая линия является проблематичной? –