Javaunit testing无法访问ResourceBundle

我正在创建一个Javaunit testing来测试我最近更改的一些代码。 但是,我正在测试的方法实例化一个使用ResourceBundle的类…

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

资源文件位于Mycompany_web/src/main/webapp/WEB-INF/classes/businessVariables.properties的Web包中

我的测试存在于Mycompany_xml/src/test/java/uk/co/mycompany/xmlapi/RequestProcessorTestNew.java xml包中

在正常运行时,资源包可以访问,但不能在我的unit testing运行时访问。 它抛出了这个错误……

 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 

我该怎么办? 我可以启用测试以某种方式查看资源包吗? 我可以在某处以某种方式创建一个模拟资源文件,代码将能够看到吗?

如果您根据Maven原型构建项目结构,理想情况下您的资源包应该在Mycompany_xml / src / test / resources中。 然后,您可以使用mvn test从项目主目录运行unit testing,即Mycompany_xml目录。

打包战争时,使用maven-assembly-plugin将资源包从Mycompany_xml / src / test / resources复制到war。

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

到您的unit testing运行的类路径。