Учитывая проект ASP.NET с некоторыми файлами в структуре, которые имеют Содержание, перечисленные в качестве их Build Action, как это относится к этому контенту таким образом, который работает как для IIS, так и для пакета тестирования Visual Studio?Как вы относитесь к ASP.NET «Контент» для обеспечения совместимости с тестированием?
Наш старый/существующая практика ссылаться на файлы с помощью Server.MapPath()
:
String filename = HttpContext.Current.Server.MapPath("/common/template_1.txt");
Однако это не удается во время тестирования. Тест-бегун не имеет HttpContext
.
Есть ли механизм для ссылки на /common/template_1.txt
, который будет работать с или без HttpContext
? Или нам нужно изготовить HttpContext
?
Если нам нужно повторить Содержимое элементов для теста, это нормально (хотя и не идеально).
http://stackoverflow.com/questions/9624242/setting-the-httpcontext-current-session-in-unit-test – Donal
@Donal Спасибо за ссылку. Мы можем подделать «HttpContext», если это абсолютно необходимо. Но мы делаем большие успехи в абстрагировании наших других зависимостей HttpContext. Если есть разумный способ работать с «MapPath()» специально, это то, что я ищу. – svidgen
Тестирование, которое включает внешние источники (db, файлы ...), должно выполняться с использованием mocks или stub. – walther