Ninject, эквивалентный из Единицы метод RegisterInstance

Если конкретные методы вызывают какой-либо из абстрактных методов, что стратегия не будет работать, и Вы хотели бы протестировать каждое поведение дочернего класса отдельно. Иначе расширение его и блокирование абстрактных методов, как Вы описали, должны быть прекрасными, снова если методы бетона абстрактного класса разъединяются от дочерних классов.

5
задан Ryu 11 August 2009 в 05:17
поделиться

2 ответа

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

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

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

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

Бонусный ответ:

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

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

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

13
ответ дан 18 December 2019 в 11:59
поделиться

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

Я понимаю, что это не дает прямого ответа на ваш вопрос, Андерсона делает это хорошо, но подумал, что это все равно может иметь значение.

2
ответ дан 18 December 2019 в 11:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: