Мне нужно получить источник сообщений, чтобы получить доступ к файлу message.properties
в простом классе groovy (класс исключения), так что я использую Holders.getGrailsApplication()
. Моя проблема Holders.getGrailsApplication()
получает значение null, когда я выполняю блок-тест. Он отлично работает, если я развертываю его на веб-сервере. Variable: -Облицовочная проблема с модульным тестированием в Grails
static def grailsApplicationCntx=Holders.getGrailsApplication().getMainContext().getBean(‘messageSource’)
Ошибка: -
`Failure: testActivateService_Case1(com.xyz.ActivationServiceTests)
| java.lang.ExceptionInInitializerError
at java.lang.Class.forName(Class.java:186)
at com.xyz.DatabaseService.addBankUser(DatabaseService.groovy:11)
at com.xyz.RegisterService.register(RegisterService.groovy:39)
at com.xyz.ActivationServiceTests.setUp(ActivationServiceTests.groovy:60)
Caused by: java.lang.NullPointerException: Cannot invoke method getMainContext() on null object
at com.xyz.exception.Exception.(Exception.groovy:55)
… 4 more
Вы пробовали запустить этот тест с помощью «GrailsUnitTestMixin»? (http://www.grails.org/doc/latest/api/grails/test/mixin/support/GrailsUnitTestMixin.html) –
Да, я использую аннотацию, но я думаю, что контекст приложения не получает нагрузку в соответствующем классе, когда единица тест выполняется. – Saras