我正在创建一个Java单元测试来测试我最近更改的一些代码。但是,我测试的方法在Mycompany_xml/src/test/java/uk/co/mycompany/xmlapi/RequestProcessorTestNew.java
Java单元测试无法访问ResourceBundle
实例
ResourceBundle.getBundle("businessVariables").getString("product.name"));
资源文件住在web包在Mycompany_web/src/main/webapp/WEB-INF/classes/businessVariables.properties
我的测试生命在我的XML包,它使用的ResourceBundle类...在正常运行时资源包是可访问的,但不是当我的单元测试运行时。它会引发此错误...
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'区域?请参阅http://stackoverflow.com/questions/2083159/cant-find-bundle-for-base-name – Asaf
无论如何,继Kaylan的回答之后,'/ webapp/WEB-INF/classes'好像是*目标*文件夹。看看你的项目结构 - 捆绑文件最好在例如'Mycompany_web/src/main/resources/businessVariables.properties' – Asaf