Мне нужно Заглушка Финальный класс метод в других публичный класс метод.
В моем сценарии у меня есть имя класса ElasticIntegration , которое является классом Public. Есть метод с именем licenseCheckOut
public Response licenseCheckOut(String jsonObj) {
LogResource logData = new LogResource();
try {
LicenseServiceImpl licenseCheck = new LicenseServiceImpl();
JSONObject queryObj = new JSONObject(jsonObj);
int licenseId = -1;
Properties configProperties = Utilities.getConfigProperties();
Utilities.verifykeycloakToken(queryObj, configProperties);
String userName = userAuth.getUserInfo(queryObj,configProperties);
if(userName !=null){
licenseId = licenseCheck.checkoutLicense(userName);
}
String result = "{\"licenseid\": "+ licenseId +"}";
return Response.ok(result).build();
} catch (Exception ex) {
LogDetail details = Utilities.constructDetails("licenseCheckOut", ex);
logData.writeLogMessage(null, details);
return Response.serverError().entity(details).build();
}
}
В методе licenseCheckOut есть verifykeycloakToken - метод, который нам нужно заглушить. Утилиты класс является финальным классом.
![**verifykeycloakToken Function in Utilities class**](https://i.stack.imgur.com/N5pB3.png)
Если вы укажете ссылку на вышеуказанное изображение точно connection.connect () , мы получим ошибку. Поэтому я заглушил класс с когда (). ThenReturn ()
Utilities util = new Utilities();
Utilities mock = mock(Utilities.class);
JSONObject queryObj = new JSONObject(jsonObj);
Properties mapProperties = null ;
when(mock.verifykeycloakToken(queryObj, mapProperties)).thenReturn(true);
Ошибка, которую я получаю здесь
org.mockito.exceptions.base.MockitoException:
Не может издеваться над шпионским классом com.project.Utilities
Мокито не может издеваться / шпионить, потому что:
- финальный класс
at ElasticIntegrationTest.licenseCheckOut_verifykeycloakToken_ShouldReturnSuccessBuild (ElasticIntegrationTest.java:51)