Я высмеял класс Jsch () и получил исключение приведения класса в следующем методе.
Оригинальный метод.
JSch jsch = getSftpJsch();
session = jsch.getSession(sessionObj);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
LOGGER.info("sfg channel opened and connected.");
channelSftp = (ChannelSftp) channel;
channelSftp.cd(inboundPath);
Vector<ChannelSftp.LsEntry> list = channelSftp.ls(filePattern);
Получение исключения Mockito на линии.
channelSftp = (ChannelSftp) channel;
Исключение:
java .lang.ClassCastException: com.jcraft.jsch.Channel $ MockitoMock $ 1983492043 нельзя преобразовать в com.jcraft.jsch.ChannelSftp
Тестовый метод вызова метода.
@Mock(answer = Answers.RETURNS_MOCKS)
private JSch mockJsch;
private AppUtils sftp = new AppUtils(){
@Override
JSch getSftpJsch() {
return mockJsch;
}
};
@Test
public void tetsGetFileList(){
sftp.getFileList(folderPath, fileName, charEncoding);
}