Ninject相当于Unity RegisterInstance方法

Ryu*_*Ryu 5 unit-testing ninject mocking unity-container

Ninject是否具有统一注册实例的等效方法.

我想创建一个模拟对象并注册它.

谢谢

And*_*mes 13

这是简单的答案

Bind<IMyType>().ToConstant<MyType>(new MyType());
Run Code Online (Sandbox Code Playgroud)

所以这是使用Moq的一个例子:

var mock = new Mock<IMyType>();
//Setup your mock expectations / etc here.
//...
Bind<IMyType>().ToConstant(mock.Object);
Run Code Online (Sandbox Code Playgroud)

奖金回答:

我发现有些人实际上只是想创建一个特定类的单例实例,而不是自己实际创建它(这允许在有人请求时创建对象,而不是在构建容器时).这样做是这样的:

Bind<IMyType>.To<MyType>().Using<SingletonBehavior>();
Run Code Online (Sandbox Code Playgroud)

在你的情况下,既然你说了"模拟"这个词,我会假设你想要的是第一个而不是第二个答案,但这是一件好事.