2016-11-19 35 views
1

我需要測試Apache camel SFTP使用者。有沒有辦法運行嵌入式SFTP服務器來在開發環境中測試我的代碼?感謝任何幫助。java代碼中的嵌入式SFTP服務器

+0

http://stackoverflow.com/questions/3076443/java-sftp-server-library?rq=1都配有完全的Apache米娜SSHD例如 – Redfoxmoon

+0

我第二個米娜是你的最佳答案。我不知道運行嵌入式服務器的另一種方式。另一個選擇是尋找一個模擬FTP服務器,比如這裏描述的那個:https://itsiastic.wordpress.com/2012/11/08/how-to-create-a-java-ftp-server-mock/ –

+0

謝謝! Apache Mina看起來很有希望,至少對於我需要執行的測試而言。您還可以指出我正確的方向,以瞭解如何在此嵌入式服務器上生成身份驗證密鑰? – Techji

回答

0

一旦我遇到類似的問題,因此編寫了JUnit 4規則,該規則在測試期間運行SFTP服務器。它被稱爲Fake SFTP Server Rule並在內部使用Apache Mina SSHD。下面是使用該規則測試的一個例子:

public class SomeTest { 
    @Rule 
    public final FakeSftpServerRule sftpServer = new FakeSftpServerRule(); 

    @Test 
    public void testTextFile() { 
     //code that uploads the file 

     String fileContent = sftpServer.getFileContent("/directory/file.txt", UTF_8); 

     //verify content 
    } 
}