我想將一個簡單的FTPServer嵌入到我的單元測試中,以測試文件上傳的FTP客戶端功能。我嘗試了Apache FTPServer(ftpserver-core-1.0.6.jar)。適用於Windows的UnitTest的嵌入式FTPServer:FileUpload 551錯誤
文件上傳失敗,
551 /C:/<correctDestinationPath>/myFile.txt: Error on output file.
這裏我設置了服務器代碼:
FtpServerFactory serverFactory = new FtpServerFactory();
BaseUser user = new BaseUser();
user.setName("anonymous");
user.setPassword(System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName());
user.setHomeDirectory(TEST_TARGET_DIR_LOCAL);
List<Authority> authorities = new ArrayList<Authority>();
authorities.add(new WritePermission());
user.setAuthorities(authorities);
UserManager userManager = serverFactory.getUserManager();
userManager.save(user);
myServer = serverFactory.createServer();
myServer.start();
這完全適用於連接和記錄:
220 Service ready for new user.
USER *******
331 Guest login okay, send your complete e-mail address as password.
PASS *******
230 User logged in, proceed.
SYST
215 UNIX Type: Apache FtpServer
TYPE I
200 Command TYPE okay.
生產性代碼如下所示調用FTPClient:
myFtpClient.storeFile("C:\<correctDestinationPath>\myFile.txt", anInputStream);
請注意,這是我的Windows機器上的正確路徑。但FTPServer將其加擾爲一個類似unix的路徑「/C:/correctDestinationPath/myFile.txt」。
我怎樣才能配置FTPServer,它也適用於Windows?單元測試本身當然應該是OS中立的。