このメソッドの単体テストを行う必要があります。問題は、FsFileGroupFile が簡単にモックできないこと、複雑なコンストラクター要件があり、インターフェイスを直接使用しないことです。_blockReaderFactory
一方、インターフェイスであるため、簡単にモックできます。このような複雑なオブジェクトをどのようにモックできますか。Rhino Mocks と Microsoft Unit Testing Framework を使用しています。アイデアはありますか?
public void ReadGeneral(FsFileGroupFile a_file, FileItemData a_fileItemData)
{
try
{
var blockReader = _blockReaderFactory.Create(a_file.File.FullName, "CabinetData/StartData");
var version = blockReader.ReadVersion();
var name = blockReader.ReadString();
var type = blockReader.ReadString();
var defaultHeight = blockReader.ReadDouble();
var defaultWidth = blockReader.ReadDouble();
var defaultDepth = blockReader.ReadDouble();
a_fileItemData.Name = name;
a_fileItemData.DefaultWidth = defaultWidth * 100.0;
a_fileItemData.DefaultHeight = defaultHeight * 100.0;
a_fileItemData.DefaultDepth = defaultDepth * 100.0;
}
catch (Exception ex)
{
throw new IOException("General data could not be read from block data.", ex);
}
}