次のような StructureMap の規則があります。
public class FakeRepositoriesConvention : IRegistrationConvention
{
public void Process(Type type, global::StructureMap.Configuration.DSL.Registry registry)
{
if (type.Name.StartsWith("Fake") && type.Name.EndsWith("Repository"))
{
string interfaceName = "I" + type.Name.Replace("Fake", String.Empty);
registry.AddType(type.GetInterface(interfaceName), type);
}
}
}
これに単体テストを実装したいのですが、その方法がわかりません。
私が最初に考えたのは、モックされたレジストリを送信し、正しいパラメーターで AddType() が呼び出されることをテストすることでした。おそらく AddType() が仮想ではないため、それを機能させることはできません。Registry は IRegistry を実装していますが、Process メソッドがインターフェイスを受け入れないため、これは役に立ちません。
だから私の質問は - どうすればこれをテストできますか?
(nUnit と RhinoMocks を使用しています)