public SupportedBrowser GetBrowser()
{
string agent = HttpContext.Current.Request.Headers["User-Agent"];
if (agent.Contains("iPad"))
{
return new iPad();
}
else
return new InternetExplorer7();
}
Я настраиваю модульное тестирование по вышеуказанному методу, используя инструмент модульного тестирования Microsoft (MS-Test?).Поскольку юнит-тест не является веб-сайтом, HttpContext отсутствует.Я могу придумать два решения:
A.Добавьте необязательный параметр: GetBrowser(bool debug = false)
.Это позволяет текущему коду выполняться без рефакторинга.Затем измените метод, чтобы создать фиктивный контекст или жестко запрограммированный пользовательский агент, когда отладка истинна.
B.Добавьте Dependency инъекцию.Получить контекст откуда-то еще.Тем не менее, я думаю, что мне нужно добавить IoC через ninject, чтобы автоматизировать это.Это большая работа.
Можете ли вы придумать что-нибудь лучше или улучшить эти идеи?
Обратите внимание, этот метод размещен в библиотеке классов.Я хочу, чтобы это продолжалось.