Question

Does Ninject have and equivalent method for unity's registerinstance.

I want to create a mock object and register it.

Thanks

Was it helpful?

Solution

Here's the simple answer

Bind<IMyType>().ToConstant<MyType>(new MyType());

So here's an example using Moq:

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

Bonus answer:

I find that some people are actually just looking to create a singleton instance of a particular class, rather than actually creating it themselves (this allows the object to be created when something requests it, rather than when you are building your container). This is done like this:

Bind<IMyType>.To<MyType>().Using<SingletonBehavior>();

In your case, since you said the word "mock", I'd assume you'd want the first rather than the second answer, but it's a good thing to know.

OTHER TIPS

Not sure what sort of mocking tool, if any, or version of Ninject you're using; however, it's worth mentioning that Ninject 2 has an extension for it that provides integration with Moq -- http://github.com/enkari/ninject.moq.

I realize this doesn't directly answer your question, Anderson's does that well, but thought it might be relevant anyway.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top