だから私はこのMockito単体テストを持っています:
@Test
public void createCard() {
when(jwtServiceMock.getId(anyString())).thenReturn(validUserToken);
when(profileServiceMock.getProfile(validUserToken)).thenReturn(mock(Profile.class));
when(cardServiceMock.countViewableCardsCreatedOrOwnedBy(anyObject())).thenReturn(5L);
when(cardServiceMock.countCardsCreatedOrOwned(anyObject())).thenReturn(10L);
final Card expectedCard = getCard();
when(cardServiceMock.createCard(anyString(), anyListOf(String.class), anyListOf(String.class),
any(CreatorRecipientCriteria.class), anyListOf(ImageMask.class))).thenReturn(expectedCard);
when(imageService.createCardImage(any(MultipartFile.class), anyString(), any(ImageMask.class))).thenReturn(any(Orientation.class));
final Card receivedCard = cardControllerMock.createCard(validUserToken, mock(MultipartFile.class), "card");
assertEquals(receivedCard, expectedCard);
}
私には問題ないように見えますが、何らかの理由で次のように表示されます。
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Misplaced argument matcher detected here:
-> at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:53)
You cannot use argument matchers outside of verification or stubbing.
Examples of correct usage of argument matchers:
when(mock.get(anyInt())).thenReturn(null);
doThrow(new RuntimeException()).when(mock).someVoidMethod(anyObject());
verify(mock).someMethod(contains("foo"))
私は長い間何が問題なのかを突き止めようとしてきましたが、何が問題を引き起こしているのかまだわかりません. ヒントをお願いします。
ありがとう。