2016-12-20 14 views
2

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

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 
    } 
} 

ответ

2

вы можете добавить следующие строки в блок теста:

def doWithSpring = { 
    fooService(InstanceFactoryBean, Mock(FooService)) 
}