Хобрук: Ваш путь к мастерству в программировании

Установка корня для относительных путей к файлам в JUnit, AppEngine

У меня есть код, который ссылается на имя файла. На сервере эта ссылка относится к моему каталогу war. Однако, когда я запускаю тесты, относительный корень, похоже, не установлен - только абсолютные пути, начинающиеся в корне моего локального жесткого диска, фактически находят файлы.

Я тестирую в контексте AppEngine LocalServiceTestHelper, который возвращает мой военный каталог в своем методе getAppDir, но все же код не может понять относительный путь.

Как установить корень для относительных имен файлов в тестах JUnit?


Ответы:


1

Есть несколько вариантов. В любом случае я бы инкапсулировал доступ к файлу (или, по крайней мере, разрешение пути к файлу) в отдельный класс. Таким образом, вы могли бы:

  • Смоделируйте этот класс в своих тестах, чтобы указать правильный файл (путь)
  • Передайте переменную среды в свой тестовый класс, чтобы разрешить правильный файл (путь)
  • Обеспечьте резервную реализацию, если файл не найден (как это имеет место в ваших тестах).
  • так далее...
21.04.2012

2

Для модульных тестов я создал вспомогательный класс с именем SupportFilePathResolver (см. код). Он находит файл, просматривая путь к классам. Это хорошо работает, если нужные вам файлы находятся в пути к классам. Если не в пути к классам, то это вам не поможет.

20.04.2012
Новые материалы

Создание успешной организации по науке о данных
"Рабочие часы" Создание успешной организации по науке о данных Как создать эффективную группу по анализу данных! Введение Это обзорная статья о том, как создать эффективную группу по..

Технологии и проблемы будущей работы
Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

Игорь Минар из Google приедет на #ReactiveConf2017
Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...