Как внедрить макет для поля (используя автопровод) в сервисе Grails, который проходит модульное тестирование?

В моей текущей настройке я хочу провести модульное тестирование сервиса Grails, который имеет @autowired зависимость и вводить макет для зависимости.

class AcmeService {

    @Autowired
    FooService fooService // not a Grails service!
}

FooService - это не служба Grails, а динамическая реализация от FeignClient. Я ищу способ ввести Mock для службы FooService в UnitTest. Каково было бы лучшее решение для этого?

Я попытался установить зависимость в настройке, но затем я получил "Неудовлетворенная зависимость, выраженная через поле fooService"

class AcmeService extends Specification {

    FooService mockedFooService = Mock(FooService)

    def setup() {
        service.fooService = mockedFooService
    }
}

1 ответ

Решение

Вы можете добавить следующее в свой юнит-тест:

def doWithSpring = {
    fooService( InstanceFactoryBean, Mock(FooService) )
}
Другие вопросы по тегам