Подтвердить что ты не робот

"App_GlobalResources" не загружается в случае Unit test


У меня есть метод unit test, который проверяет метод действия контроллера. Метод действия использует файл ресурсов для получения статического сообщения.

 message = Resources.MyResource.MemberNotVerified;

Однако на этой строке выбрано исключение: -

"Не удалось загрузить файл или сборку" App_GlobalResources "или одну из его зависимостей. Система не может найти указанный файл.": "App_GlobalResources" System.IO.IOException {System.IO.FileNotFoundException}

Я пробовал копировать весь файл ресурсов в своем тестовом проекте, но он не увенчался успехом.
Любые идеи друзей.

4b9b3361

Ответ 1

За кулисами App_GlobalResources использует HttpContext.GetGlobalResourceObject

Конечно, в модульных тестах нет HttpContext (если вы не издеваетесь над ним).

Если вы так склонны издеваться над этим, Phil Haack имеет достойный пост на нем здесь.

Существует еще одно решение, которое должно перемещать файлы RESX из обычного каталога.

Скотт Аллен имеет сообщение об этом здесь.

Ответ 2

Альтернативный подход заключается в изменении типа файла ресурсов, который вы генерируете.

Я ожидаю, что есть другие способы его настройки, но мы установили следующие параметры в свойствах файла (щелкните правой кнопкой мыши файл в проводнике решений и выберите свойства):

  • Действие сборки: встроенный ресурс
  • Копировать в выходной каталог: не копировать
  • Пользовательский инструмент: PublicResXFileCodeGenerator
  • Ресурсы: Ресурсы