2009-08-11 2 views

ответ

13

Вот простой ответ

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

Так вот пример использования Moq:

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

Bonus ответ:

Я считаю, что некоторые люди на самом деле просто ищут для создания одиночного экземпляра определенного класса, а не для создания (это позволяет создавать объект, когда что-то его запрашивает, а не при создании контейнера). Это делается так:

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

В вашем случае, так как вы сказали слово «издеваться», я полагаю, вы бы хотите первый, а не второй ответ, но это хорошая вещь, чтобы знать.

+0

использование Moq ... var mock = new Mock (); Bind () .ToConstant (mock); ConstantProvider бы создать экземпляр Мок , который не совместим с запрашиваемой услуги – Ryu

+0

вам нужно пройти в MyMock.Object, а не сама :) –

+0

издеваться я буду обновлять образец выше с кодом вам нужно –

2

Не знаете, какой инструмент для издевательств, если таковой имеется, или версию Ninject, которую вы используете; однако стоит упомянуть, что Ninject 2 имеет расширение для него, которое обеспечивает интеграцию с Moq - http://github.com/enkari/ninject.moq.

Я понимаю, что это прямо не отвечает на ваш вопрос, Anderson's делает это хорошо, но подумал, что это может быть уместно в любом случае.

+0

Nice! Это может быть действительно то, что он ищет. –

+0

Да, хорошо выглядит - еще не использовал его сам, но хотел бы сделать это в ближайшее время. –