我有一个创建FTPS连接的CreateFTPConnection类。使用此连接,文件被传输。这是TransferFile类的代码
public class TransferFile
{
private CreateFTPConnection ftpConnection;
private FTPSClient client;
public TransferFile(CreateFTPConnection ftpConnection) {
this.ftpConnection = ftpConnection;
this.client = ftpConnection.getClient();
}
public void transfer(Message<?> msg)
{
InputStream inputStream = null;
try
{
if(!client.isConnected()){
ftpConnection.init();
client = ftpConnection.getClient();
}
File file = (File) msg.getPayload();
inputStream = new FileInputStream(file);
client.storeFile(file.getName(), inputStream);
client.sendNoOp();
} catch (Exception e) {
try
{
client.disconnect();
}
catch (IOException e1) {
e1.printStackTrace();
}
}
finally
{
try {
inputStream.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
}
我必须为此类编写jUnit Testcase。为此,我必须创建一个FTPS Mock Server连接,并必须使用该连接来测试文件传输。因此,任何人都可以给我关于如何制作FTPS Mock Server以及进行测试用例的任何想法。我用谷歌搜索,但是我得到的是FTP或SFTP,而不是FTPS。请帮我。
最佳答案
您可能会发现此有用的MockFTPServer
问题是这些模拟服务器没有实现我所看到的TLS部分。您可能需要做一些工作以允许通过TLS进行连接。
为了进行测试,您应该可以在SO上四处搜索并找到有关处理证书(或在某些情况下绕过它们)的一些文章。
这是另一个Article,它经历了创建基本FTP服务器测试的步骤。
缺少功能完善的FTP服务器(Apache http w/mod_ftp添加),似乎没有任何有用的方法。