プロジェクトでは、MEF フレームワークの CompositeContainer クラスを使用しています。ここで、ComposeParts (AttributedModelServices の拡張メソッド) メソッドが呼び出されるかどうかを検証する単体テスト (moq を使用) を作成したいと思います。
メソッドは仮想ではないため、 moq でモックするだけでは機能しません。これを行ういくつかの方法を見つけましたが、それらのすべてで CompositeContainer クラスを変更する必要があり、これを行うことはできません。
外部のサードパーティ ライブラリの非仮想メソッドが呼び出されているかどうかを moq でテストする方法はありますか?
お返事ありがとうございます。
コード例:
public void Load(string path, CompositionContainer container)
{
container.ComposeParts(this);
}
ここで、コンテナは MEF ライブラリからのもので、ComposeParts は System.ComponentModel.Composition 名前空間の拡張メソッドです。
//
// Summary:
// Creates composable parts from an array of attributed objects and composes
// them in the specified composition container.
//
// Parameters:
// container:
// The composition container to perform composition in.
//
// attributedParts:
// An array of attributed objects to compose.
public static void ComposeParts(this CompositionContainer container, params object[] attributedParts);