Как имитировать путь к приложению при модульном тестировании веб-приложения

Я тестирую код в помощнике MVC HTML, который выдает ошибку при попытке получить путь к приложению:

//appropriate code that uses System.IO.Path to get directory that results in:
string path = "~\\Views\\directory\\subdirectory\\fileName.cshtml";
htmlHelper.Partial(path, model, viewData); //exception thrown here

Вызывается исключение

System.Web. HttpException: относительный виртуальный путь приложения '~ / Views / directory / subdirectory / fileName.cshtml' нельзя сделать абсолютным, потому что путь к приложению неизвестен.

Следуя совету Как решить проблему с путь к изображению при тестировании HtmlHelper?
Я подделал (используя Moq):

  • Request.Url , чтобы вернуть строку
  • Request.RawUrl , чтобы вернуть строку
  • Request.ApplicationPath , чтобы вернуть строку
  • Request.ServerVariables , чтобы вернуть нулевое значение NameValueCollection
  • Response.ApplyAppPathModifier (string virtualPath) , чтобы вернуть строку

Что еще необходимо, чтобы это разрешить код для запуска в контексте выполнения модульного теста?
Или
Какой другой подход мне следует использовать для визуализации частичного представления динамически создаваемой строки?

11
задан Community 23 May 2017 в 12:02
поделиться