Использование @TestFor в модульном тесте для bean-компонента, использующего аргументы конструктора, приводит к ошибке (Grails 2.0.0RC1) - PullRequest
2 голосов
/ 23 ноября 2011

Я пытаюсь создать модульный тест для класса обслуживания, который использует аргумент конструктора.Я уже настроил запись в grails-app / conf / spring / resources.groovy, чтобы позволить Spring создавать бин с использованием аргумента конструктора.

Запуск интеграционного теста для класса обслуживания работает без проблем, однакоПри выполнении модульного теста, использующего @TestFor, появляется следующее исключение:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sampleService': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [ph.jojopad.SampleService]: No default constructor found; nested exception is java.lang.NoSuchMethodException: ph.jojopad.SampleService.<init>()
    at grails.test.mixin.services.ServiceUnitTestMixin.mockService(ServiceUnitTestMixin.groovy:54)
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [ph.jojopad.SampleService]: No default constructor found; nested exception is java.lang.NoSuchMethodException: ph.jojopad.SampleService.<init>()
Caused by: java.lang.NoSuchMethodException: ph.jojopad.SampleService.<init>()

Кажется, что @TestFor ожидает только компонент, использующий конструктор по умолчанию.Глядя на документацию Grails, я не могу найти никаких ссылок на то, как использовать @TestFor для bean-компонентов с аргументами конструктора.Я ожидал, что с правильной конфигурацией бина в grails-app / conf / spring / resources.groovy добьется цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...