Java单元测试无法访问ResourceBundle

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

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

资源文件位于Web包中,位于 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

我该怎么办?我可以启用测试以某种方式查看资源包吗?我可以在某个地方以某种方式看到代码的模拟资源文件吗?

回答:

如果您已经按照Maven原型构建了项目结构,则理想情况下,资源束应位于Mycompany_xml / src / test /

resources中。然后,您可以使用mvn test从项目主页(即Mycompany_xml目录)运行单元测试。

在打包战争时,使用maven-assembly-plugin将资源包从Mycompany_xml / src / test /

resources复制到战争中。

以上是 Java单元测试无法访问ResourceBundle 的全部内容, 来源链接: utcz.com/qa/414624.html

回到顶部