T4MVC и тестирование с MvcContrib.TestHelpers выдает ошибки «Относительный виртуальный путь» - PullRequest
2 голосов
/ 12 августа 2011

Мои проблемы могут быть из-за моего n00bness на земле MVC, но я пытаюсь написать тест для функции в контроллере, который был сгенерирован с помощью T4MVC.Поэтому я решил использовать MvcContrib.TestHelper.

Я запускаю TestControllerBuilder и мой контроллер, когда я пытаюсь вызвать InitializeController, я получаю исключение:

System.TypeInitializationException: инициализатор типа для 'Images' вызвал исключение.---> System.Web.HttpException: относительный виртуальный путь приложения '~ / Content / Images / add.gif' нельзя сделать абсолютным, поскольку путь к приложению неизвестен.

Хорошо, он пытается получить изображения, и они не находятся в относительном пути исполняемого файла теста ... как мне это сказать?

Я пробовал этот T4MVCHelpers.ProcessVirtualPath (), но почти все, что я пытаюсь сделать вТам выдает ошибку, когда он вызывает метод VirtualPathUtility.ToAbsolute ().

Я не сомневаюсь, что я делаю что-то не так.Правильно ли я понимаю, что TestControllerBuiler настроит для меня ложные HTTPContexts?Могу ли я сказать, чтобы игнорировать изображение?

Пожалуйста, помогите n00b.Простой пример использования TestHelper и ProcessVirtualPath был бы потрясающим.

Обновление

Для тех, кто получил похожую ошибку, моя причина заключалась в том, что httpcontext былиспользуется в конструкторе контроллера.В моем случае это был сбой в пути с сильно типизированным изображением, сгенерированном T4MVC.

1 Ответ

0 голосов
/ 19 июня 2014

Вы можете предоставить свой собственный метод для использования T4MVC, задав делегат ProcessVirtualPath.

Приведенный ниже анонимный метод сохраняет дух исходной реализации.

T4MVCHelpers.ProcessVirtualPath = p => VirtualPathUtility.ToAbsolute(p, "/App");
...