私はTransfer
クラスを持っています、それは次のように簡略化されています:
public class Transfer
{
public virtual IFileConnection source { get; set; }
public virtual IFileConnection destination { get; set; }
public virtual void GetFile(IFileConnection connection,
string remoteFilename, string localFilename)
{
connection.Get(remoteFilename, localFilename);
}
public virtual void PutFile(IFileConnection connection,
string localFilename, string remoteFilename)
{
connection.Get(remoteFilename, localFilename);
}
public virtual void TransferFiles(string sourceName, string destName)
{
source = internalConfig.GetFileConnection("source");
destination = internalConfig.GetFileConnection("destination");
var tempName = Path.GetTempFileName();
GetFile(source, sourceName, tempName);
PutFile(destination, tempName, destName);
}
}
インターフェイスの簡略化されたバージョンはIFileConnection
次のようになります。
public interface IFileConnection
{
void Get(string remoteFileName, string localFileName);
void Put(string localFileName, string remoteFileName);
}
実際のクラスはSystem.IO.IOException
、具体的なクラスがリモートとの接続を失ったときにスローされる を処理しIFileConnection
、電子メールを送信することになっています。
Moq を使用してクラスを作成し、それをすべてのプロパティとメソッドでTransfer
具体的なクラスとして使用します。Transfer
GetFile
System.IO.IOException
Transfer
仕事に適したツールを使用していますか? 私はこれを正しい方法で行っていますか?そして、その単体テストのセットアップをどのように記述しますNUnit
か?