Да, при запуске тестов (т. Е. Тестов в каталоге интеграции) приложение запускается, и все компоненты создаются и внедряются, как если бы приложение действительно выполнялось. Единственная разница между тестовым приложением и запущенным приложением должна заключаться в среде конфигурации.
Конечно, если вы создадите экземпляр класса, который требует внедрения с использованием оператора «new» в вашем тесте, вы не получите преимуществ DI. Вместо этого создайте в своем тесте свойство для тестируемого компонента, и оно будет внедрено:
class MyServiceTests extends GrailsUnitTestCase {
MyService service
void testInjection() {
assertNotNull service
}
}