Проблема введения зависимости Грааля - PullRequest
0 голосов
/ 25 октября 2010

У меня проблемы при использовании внедрения зависимостей в службах в Grails.

class ExampleService{

    def example2Service
    def example3Service

    def method1(){
       def result = example2Service.method2()
    }

}

class ExampleService{
    def example3Service

    def method2(){

       def result = example3Service.method3()
       return result 
    }

}

class Example3Service{

    def method3(){
        return true
    }

}

В основном в Example2Service я получаю исключение пустого указателя при попытке вызвать method3 в Example3Service.

Буду признателен за любую помощь, чем кто-либо другой, кто может мне помочь с этим вопросом

спасибо

1 Ответ

1 голос
/ 25 октября 2010

Внедрение зависимостей необходимо инициализировать. (То же самое относится и к другим видам метапрограммирования во время выполнения, например, к расширению классов домена с помощью их методов save() и validate().)

Приложение Grails будет инициализировано, когда

  • запускается из команды grails run-app
  • запускается после развертывания на веб-сервере
  • запускается из команды grails test-app (только тесты интеграция ; тесты unit не вызывают инициализацию).

Включенные классы не инициализируются, когда

  • выполнение одного файла Groovy (т. Е. С помощью groovy, groovysh или groovyConsole)
  • или при выполнении теста unit .

Следующее как интеграционный тест должно работать:

class Test2ServiceTests extends GroovyTestCase {
    def test2Service

    void testMethod2() {
        assert test2Service.method2() == true
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...