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

Я создаю модульный тест 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

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


person Andy A    schedule 30.05.2012    source источник


Ответы (2)


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

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

person Kalyan Sarkar    schedule 30.05.2012
comment
Это верно. Однако также обратите внимание, что файл pom может определять альтернативное место для размещения файла ресурсов. - person Andy A; 30.05.2012

Добавлять

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

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

person stevedbrown    schedule 30.05.2012