Передаешь услугу неработающему в Граале - PullRequest
0 голосов
/ 31 января 2011

У меня есть не обслуживающий класс, который определяется как:

class A{
   B b
   A( B b ){ this.b = b }
}

, где B - сервис Grails. В своих модульных тестах я пробовал это:

A a = new A( new B() );

По некоторым причинам, однако, b никогда не устанавливается, а переменная b [local, the argument to the mehod] даже не отображается в отладчике Intelli-J при запуске теста. То есть я могу переименовать аргумент в service, и отладчик показывает его как неопределенный.

Когда я пытаюсь запустить сервер, я получаю Initialization of bean failed; nested exception is java.lang.reflect.MalformedParameterizedTypeException, поэтому я предполагаю, что это связано.

Что здесь происходит?

1 Ответ

2 голосов
/ 31 января 2011

Это похоже на странный сценарий. Что делает А? Есть ли шанс, что А действительно сервис?

Я бы предложил сделать услугу A, и в этом случае вы можете внедрить в нее услугу B, как при обычном использовании.

Я не думаю, что выполнение 'new B ()' действительно было бы допустимо, если только B не имеет зависимостей ни от чего (поля с автопроводкой). Возможно, лучше ввести B в тест?

...