@Test @ClearAndBootstrapSql public void test_permissionCheck() { Permission permission = new Permission(); permission.setId(1); permission.setDocument("CMSS::DeepWatch::Identity"); permission.setCategory("cs"); ArrayList<Permission> permissionList = new ArrayList<>(); permissionList.add(permission); Mockito.when(permissionMapper.getPermissionOfUserByType("1",PermissionType.API.getValue())).thenReturn(permissionList); Mockito.when(permissionMapper.selectList(any())).thenReturn(permissionList); Boolean aBoolean = permissionService.permissionCheck("cs/cs"); assertNotNull(aBoolean); } 这段单元测试会报错org.mockito.exceptions.misusing.MissingMethodInvocationException: \nwhen() requires an argument which has to be 'a method call on a mock'.\nFor example:\n when(mock.getArticles()).thenReturn(articles);怎么解决内容:这个错误是因为在使用Mockito.when()时没有正确指定方法调用。\n\n在这段代码中,permissionMapper是一个模拟对象,getPermissionOfUserByType()selectList()permissionMapper对象的方法。所以在使用Mockito.when()时,需要传入对permissionMapper对象方法的调用。\n\n修改代码如下:\n\njava\nMockito.when(permissionMapper.getPermissionOfUserByType("1", PermissionType.API.getValue())).thenReturn(permissionList);\nMockito.when(permissionMapper.selectList(any())).thenReturn(permissionList);\n\n\n这样就可以正确模拟permissionMapper对象的方法调用,并返回指定的结果。

Mockito单元测试错误:MissingMethodInvocationException解决方法

原文地址: https://www.cveoy.top/t/topic/pz5S 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录