Wstrzykiwanie zależności w teście Grails Spock Specification

W testach muszę uzyskać zależności wstrzykiwane w obiekty mojej domeny.

Testy te są umieszczane w katalogu test / integration i rozszerzają się zspock.lang.Specification.

Jak mogę to osiągnąć?

Uwaga: widziałem ten postJak wstrzyknąć ziarna wiosenne do testu spock, ale nie ma to związku z Graalem.

Edytować:

Zależność, którą chcę wstrzyknąć, tospringSecurityService w moimSecUser podklasa o nazwiePlayer. Metoda, która zawodzi, to metodaencodePassword(), który nazywa się wbeforeInsert().

Mogę z tego kpićencodePassword() metoda w niektórych testach, ale gdy chcę przetestować moją metodę kontrolerówsave(), Nie mogę kpić zPlayer który jest tworzony, ponieważ wszystko dzieje się wewnątrz metody kontrolerów.

Po zmianie na rozszerzenieIntegrationSpec, to jest mój kod testowy:

package intertigre.test.domain
import intertigre.domain.Fecha;
import intertigre.test.util.DomainFactoryTestService
import grails.plugin.spock.IntegrationSpec
import grails.test.mixin.TestFor

    @TestFor(Fecha)
    class FechaSpec extends IntegrationSpec{

    DomainFactoryTestService domainFactoryTestService = new DomainFactoryTestService()

    def 'test'(){
        given:
            def fecha = new Fecha()
        when:
            fecha.save()
        then:
            Fecha.get(1) == fecha
    }

}

Otrzymuję ten wyjątek podczas uruchamianiagrails test-app :spock:

java.lang.NullPointerException: Cannot get property 'mainContext' on null object
    at grails.plugin.spock.IntegrationSpec.$spock_initializeSharedFields(IntegrationSpec.groovy)

A ten, gdy przeprowadzam sam test:

| Failure:  intertigre.test.domain.FechaSpec
|  java.lang.NullPointerException: Cannot get property 'autowireCapableBeanFactory' on null object
    at grails.plugin.spock.IntegrationSpec.setupSpec(IntegrationSpec.groovy:47)
| Failure:  intertigre.test.domain.FechaSpec
|  java.lang.NullPointerException: Cannot invoke method isActive() on null object
    at grails.test.mixin.support.GrailsUnitTestMixin.shutdownApplicationContext(GrailsUnitTestMixin.groovy:232)
    at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:176)
    at org.spockframework.runtime.extension.builtin.JUnitFixtureMethodsExtension$FixtureType$FixtureMethodInterceptor.intercept(JUnitFixtureMethodsExtension.java:145)
    at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:84)
    at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:176)

questionAnswers(2)

yourAnswerToTheQuestion