MSTest с Ninject, MVC3 и WCF - PullRequest
       1

MSTest с Ninject, MVC3 и WCF

4 голосов
/ 20 сентября 2011

У меня есть проект ASP.Net MVC3, который вызывает службу WCF для получения данных.Служба WCF, в свою очередь, использует менеджеров, репозитории и т. Д. (В других проектах библиотек классов) для получения необходимых данных.

Я применил Ninject как для веб-проекта, так и для проекта WCF.Поскольку я использовал Nuget для установки Ninject MVC3, он создал класс в APP_START с загрузчиком, веб-активатором и т. Д.

Теперь я хочу писать модульные тесты, используя среду тестирования Microsoft, а не NUnit и т. Д.

Как мне начать?То есть, что я пишу в классах модульного теста, чтобы использовать Ninject для предоставления имитационных реализаций интерфейсов к веб-проектам и проектам wcf?

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

Буду признателен за любые ссылки, примеры, связанные ответы и т. Д. Спасибо

Ответы [ 2 ]

3 голосов
/ 20 сентября 2011

Не следует использовать Ninject для создания экземпляров классов, которые вы хотите протестировать.Просто создайте экземпляр контроллера или службы, которую вы хотите протестировать, и передайте фиктивный объект в качестве параметра конструктора для каждой зависимости.

1 голос
/ 21 сентября 2011

Во-первых, как говорит @Remo Gloor, вам определенно не следует использовать контейнер DI в своих тестах.

В этом месте вам может пригодиться Автофиксирование . У него есть некоторые возможности автоколонного контейнера (и вы также должны найти этот термин). Помните, что нет ничего простого в том, что в тестах много неявных насмешек и дурацких заклинаний магически связаны - чем меньше вы полагаетесь на магию и большие графы объектов в своих тестах, тем лучше.

...