c # (asp.net mvc): тестирование контроллера, который использует переменную из global.asax? - PullRequest
0 голосов
/ 09 августа 2011

У меня есть действие контроллера, которое использует статическую переменную в Global.asax, которая заполняется Application_Start ....

вот простой пример кода

    string url = VirtualPathUtility.Combine(MvcApplication.BaseU, "/geturl");

Но, конечно, в тесте, когда я тестирую свой контроллер, MvcApplication.BaseU имеет значение NULL

как не вызывается и не заполняется Application_Start из global.asax

Каков наилучший способ сделать это правильно?

Любые идеи действительно полезны

1 Ответ

1 голос
/ 09 августа 2011

У меня есть действие контроллера, которое использует статическую переменную в Global.asax который заполняется Application_Start

Это плохо. Вы могли бы реорганизовать свой код, чтобы ваш контроллер принял это значение в качестве параметра конструктора (внедрение конструктора), а затем сконфигурировать свою инфраструктуру DI для передачи правильного значения. Теперь в вашем модульном тесте достаточно просто передать проверенное значение для теста.

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