Контроллеры ASP.NET MVC правильно инициализируются при тестировании - PullRequest
3 голосов
/ 22 сентября 2009

Как правильно инициализировать контроллер ASP.NET MVC для интеграционного теста?

Моя текущая проблема заключается в том, что когда я пытаюсь получить доступ к элементу User контроллера, я получаю:

System.NotImplementedException: метод или операция не реализованы.

То, что я хочу, это то, что Ruby on Rails предоставляет из коробки с функциональными тестами.

Ответы [ 4 ]

2 голосов
/ 22 сентября 2009

Запустить Кассини из юнит-теста

 [TestMethod()]

 [HostType("ASP.NET")]

 [UrlToTest("http://localhost:25153/WebSite1")] 

Дополнительная информация о MSDN

Доброжелательность,

Dan

2 голосов
/ 22 сентября 2009

Как насчет того, чтобы узнать об этом от Стива Сандерсона - MVCIntegrationTestFramework

Выглядит чертовски круто!

HTHS
Charles

0 голосов
/ 25 сентября 2009

У вас есть несколько вариантов:

  1. Макет HttpContextBase - на эту тему достаточно статей
  2. Использовать инъекцию - передать IUserContext в контроллер и смоделировать его в тестах (в реальном приложении это будет что-то вроде HttpUserContext)
  3. Использовать модель переплета: http://www.hanselman.com/blog/IPrincipalUserModelBinderInASPNETMVCForEasierTesting.aspx

И я уверен, что есть еще, например, сделать ваш BaseController и подделать GetUser () там, где это необходимо.

0 голосов
/ 22 сентября 2009

Вам потребуется запустить экземпляр веб-сервера, будь то IIS или встроенный Visual Studio. Модульное тестирование в Visual Studio по умолчанию не запускает экземпляр сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...