MVC 3: Как научиться тестировать с помощью NUnit, Ninject и Moq?

Краткая версия моих вопросов:

  1. Может ли кто-нибудь указать мне на какие-нибудь хорошие, подробные источники, из которых я можно узнать, как реализовать тестирование в моем приложении MVC 3, используя NUnit, Ninject 2 и Moq?
  2. Может ли кто-нибудь помочь мне прояснить, как Контроллер-Репозиторий развязка, насмешка и внедрение зависимостей работают вместе?

Более длинная версия моих вопросов:

Что я пытаюсь сделать ...

В настоящее время я начинаю создавать приложение MVC 3, которое будет использовать Entity Framework 4 с подходом к базе данных. Я хочу сделать это правильно, поэтому я пытаюсь спроектировать классы, слои и т. Д. Так, чтобы их можно было легко тестировать. Но у меня практически нет опыта с модульным тестированием или интеграционным тестированием, кроме академического понимания их.

После большого количества исследований я решил использовать

  • NUnit в качестве своей среды тестирования
  • ] Ninject 2 как мой фреймворк для внедрения зависимостей
  • Moq как мой фреймворк.

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

То, что я узнал на данный момент ...

Я потратил некоторое время, работая над некоторыми из этих материалов, читая такие ресурсы, как:

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

Там, где у меня все пошло не так ...

Я думал, что улавливаю все это довольно хорошо, пока я не начал пытаться обернуть свою голову вокруг Ninject, как описано в Построение тестируемых приложений ASP.NET MVC , цитированном выше. В частности, я полностью запутался в том моменте, когда автор начинает описывать реализацию уровня сервиса, примерно на полпути к документу.

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

Подводя итог всему этому, сводя это к конкретным вопросам, меня интересует следующее:

  1. Может ли кто-нибудь указать мне на какие-нибудь хорошие, подробные источники, из которых я можно узнать, как реализовать тестирование в моем приложении MVC 3, используя NUnit, Ninject 2 и Moq?
  2. Может ли кто-нибудь помочь мне прояснить, как Контроллер-Репозиторий развязка, насмешка и внедрение зависимостей работают вместе?

РЕДАКТИРОВАТЬ:

Я только что обнаружил официальную вики Ninject на Github, поэтому я собираюсь начать работать над этим, чтобы увидеть, начнет ли она прояснять вещи для меня. Но меня все еще очень интересуют мысли сообщества SO по этому поводу:)

48
задан campbelt 11 July 2011 в 06:22
поделиться