我想创建一个简单的 Ninject 提供程序,它返回 Moq 的实例而不是具体类型。到目前为止我有这个:
public class NinjectMockProvider<T> : IProvider
{
public static Type Type { get { return typeof(T); } }
public object Create(IContext context)
{
Mock<T> newMock = new Mock<T>();
return newMock.Object;
}
}
但我敢肯定这都是错误的,因为我不知道我到底在做什么。任何帮助和代码示例都会很棒。我只是想要做的能力:
kernel.Bind<ISomeInterface>().ToProvider<NinjectMoqProvider<ISomeInterface>>();
或类似的东西。
更新
我确实发现我可以通过使用 Ninject 的方法绑定(bind)来完成我想要的:
kernel.Bind<ISomeInterface>().ToMethod(x => new Mock<ISomeInterface>().Object);
我仍然想要一种更优雅的方式,我可能必须按照 Ian 的建议检查 Ninject.Moq,但如果有人有任何真实的代码示例,那就太棒了。
最佳答案
MockingKernel你需要什么扩展句柄?它具有 Moq、RhinoMocks 和 NSubstitute 风格,并且在 NuGet 上也可用。
关于c# - 如何为 Ninject 创建最小起订量供应商?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877409/