Тестирование привязок Ninject (или любого контейнера IoC)? - PullRequest
1 голос
/ 16 мая 2011

Я использую Ninject в своем проекте ASP.NET MVC 3, и теперь у меня сложный граф объектов.

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

У меня проблемы с поиском документации о том, как это сделать.

Это так же просто, как писать

_kernel.Get<IService>(); 

и позволить исключению пройти тест? Или есть более умный способ сделать это с помощью хуков MVC для DI?

1 Ответ

3 голосов
/ 16 мая 2011

В дополнение к обычным модульным тестам у нас есть интеграционные тесты, которые проверяют все, кроме UI и DB, включая привязки Ninject. Поэтому мы настраиваем все как на производстве и привязываем эти детали к макетам. Это также проверит привязки Ninject.

В случае MVC это означает, что вам нужно создать ядро, загрузить те же модули, что и в производственной среде, и заново привязать доступ к БД. Затем создайте экземпляр контроллера и вызовите действия, которые вы хотите протестировать, и проверьте, ведут ли они себя должным образом.

...