2
我編寫一個FTP客戶端應用程序,通過nunit工具測試我的功能。我嘗試模擬FTP數據流。 GetAllCsvFilesFromFTP方法調用FtpConnect()方法,但是在測試時我想在不連接FTP服務器的情況下獲取Stream數據。如何Moq FtpDataStream
public List<string> GetAllCsvFilesFromFTP()
{
var files = new List<string>();
var responseStream = _ftpConnection.FtpConnect(WebRequestMethods.Ftp.ListDirectory);
if (responseStream != null)
{
var reader = new StreamReader(responseStream);
ReadResponseStream(files, reader);
reader.Close();
responseStream.Close();
}
return files.OrderByDescending(p => p).ToList();
}
public Stream FtpConnect(string connectionType, string fileName = "")
{
try
{
var request = (FtpWebRequest)WebRequest.Create(_readConfigXml.FtpUrl + fileName);
request.Credentials = new NetworkCredential(_readConfigXml.UserName, _readConfigXml.PassWord);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = true;
request.Method = connectionType;
var response = (FtpWebResponse) request.GetResponse();
var stream = response.GetResponseStream();
return stream;
}
catch (Exception ex)
{
_logWriter.WriteLog(_readConfigXml.LogPath, ex.Message);
return null;
}
}
我嘗試模擬測試的安裝方法在下面: _ftpConnection.Setup(M => m.FtpConnect(It.IsAny(),It.IsAny()))返回;(?)
你能幫我關於我如何模擬退貨數據。
謝謝你的回答。解決問題。 – sinanakyazici