我有一个如下所示的 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)