Вопрос по java – Модульный тест Java не может получить доступ к ResourceBundle

5

Я создаю тестовый модуль Java, чтобы проверить код, который я недавно изменил. Однако метод, который я тестирую, создает экземпляр класса, который использует ResourceBundle…

ResourceBundle.getBundle("businessVariables").getString("product.name"));

Файл ресурса находится в веб-пакете наMycompany_web/src/main/webapp/WEB-INF/classes/businessVariables.properties

Мой тест живет в моем пакете xml наMycompany_xml/src/test/java/uk/co/mycompany/xmlapi/RequestProcessorTestNew.java

Во время нормальной работы пакет ресурсов доступен, но не при запуске моего модульного теста. Выдает эту ошибку ...

Testcase: testCreateInitialStatusResponse(uk.co.mycompany.xmlapi.RequestProcessorTestNew):  Caused an ERROR
null
java.lang.reflect.InvocationTargetException
    at uk.co.mycompany.xmlapi.RequestProcessorTestNew.testCreateInitialStatusResponse(RequestProcessorTestNew.java:62)
Caused by: java.lang.ExceptionInInitializerError
    at uk.co.mycompany.xmlapi.RequestProcessorImpl.createInitialStatusResponse(RequestProcessorImpl.java:812)
Caused by: java.util.MissingResourceException: Can't find bundle for base name businessVariables, locale en_US

Что мне делать? Можно ли как-нибудь включить мой тест, чтобы увидеть комплект ресурсов? Могу ли я создать где-нибудь фиктивный файл ресурсов, который каким-то образом код сможет увидеть?

Вы пытались переименовать пакет в комплектen_Us язык? видеть / Stackoverflow.com вопросы / 2083159 / ... Asaf
В любом случае, после ответа Кейлана,/webapp/WEB-INF/classes похоже на Целевой папка. Посмотрите на структуру вашего проекта - файл пакета будет лучше, например, в.Mycompany_web/src/main/resources/businessVariables.properties Asaf

Ваш Ответ

2   ответа
5

Maven, ваш пакет ресурсов в идеале должен находиться в Mycompany_xml / src / test / resources. Затем вы можете запустить модульные тесты из домашнего проекта, то есть из каталога Mycompany_xml, используя mvn tes

Во время упаковки войны скопируйте комплект ресурсов из Mycompany_xml / src / test / resources в войну, используя maven-assembly-plugin.

Это верно. Однако также обратите внимание, что файл pom может определять альтернативное место для размещения ресурсов file.e.g <testResources> <testResource> <directory> $ {basedir} / conf </ directory> </ testResource> </ testResources> Andy A
1

Добавлят

Mycompany_web/src/main/webapp/WEB-INF/classes/

к classpath, в котором выполняется ваш модульный тест.

Похожие вопросы