Meine Methode in den Service und die Testklasse:org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
public void updateSubModuleOrder(Long[] data, Long moduleSysId, Long userId) {
try {
for (int i = 0; i < data.length; i++) {
SubModule subModule=new SubModule();
int temp = i + 1;
userSubmodule.setDsplySeq(temp);
userSubModuleDao.saveOrUpdate(userSubmodule);
@Test
public void testupdateSubModuleOrder(){
UserModuleServiceImpl userModuleServiceImpl = new UserModuleServiceImpl();
UserSubModuleDao userSubModuleDao = mock(User//set the required param ,some code here//
UserSubModuleId userSubModuleId=new UserSubModuleId();
//some code//
when(userSubModuleDao.findById((any(UserSubModuleId.class)),false)).thenReturn(userSubModule);
when(userSubModuleDao.saveOrUpdate(any(UserSubModule.class))).thenReturn(null);
userModuleServiceImpl.updateSubModuleOrder(data, moduleSysId, userId);
};*
die Fehler, die ich bekommen ist
FAILED: testupdateSubModuleOrder
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
2 matchers expected, 1 recorded:
-> at com.TestUserModuleServiceImpl.testupdateSubModuleOrder(TestUserModuleServiceImpl.java:267)
Diese Ausnahme kann auftreten, wenn Matcher mit kombiniert werden Rohwerte:
Bei der Verwendung von Matchern müssen alle Argumente von Matching-Parametern zur Verfügung gestellt werden. Zum Beispiel:
//correct:
someMethod(anyObject(), eq("String by matcher"));
das Verfahren ist eine baseDao Methode, die mein dao erstreckt. Es ist kein endgültiges oder statisches, aber ich bekomme dieses Problem.
Stellen Sie sicher, Sie haben ** alle ** Ihre Argumente Matcher verwenden ('anyXX' oder' eq'): 'userSubModuleDao.findById ((any (UserSubModuleId.class)), false)' sieht verdächtig –
möglich Duplikat von [Mockito: InvalidUseOfMatchersException] (http://stackoverflow.com/questions/14845690/mockito-invaliduseofmatchersexception) – LisaMM