Sto creando un test unità Java per testare il codice che ho modificato di recente. Tuttavia, il metodo sono test un'istanza di una classe che utilizza ResourceBundle ...Test unità Java non può accedere a ResourceBundle
ResourceBundle.getBundle("businessVariables").getString("product.name"));
il file di risorse vive nel pacchetto web a Mycompany_web/src/main/webapp/WEB-INF/classes/businessVariables.properties
mia prova vive nel mio pacchetto xml a Mycompany_xml/src/test/java/uk/co/mycompany/xmlapi/RequestProcessorTestNew.java
Durante il normale runtime il pacchetto di risorse è accessibile, ma non quando viene eseguito il test dell'unità. Genera questo errore ...
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
Cosa devo fare? Posso abilitare il mio test a vedere il pacchetto di risorse in qualche modo? Posso creare un file di risorse fittizio da qualche parte che in qualche modo il codice sarà in grado di vedere?
Hai provato rinominando il bundle internet il locale 'en_Us'? vedi http://stackoverflow.com/questions/2083159/cant-find-bundle-for-base-name – Asaf
Ad ogni modo, seguendo la risposta di Kaylan, '/ webapp/WEB-INF/classes' sembra una cartella * target *. Cerca nella struttura del tuo progetto: il file bundle sarebbe meglio ad es. 'Mycompany_web/src/main/resources/businessVariables.properties' – Asaf