Как внедрить макет для поля (используя автопровод) в сервисе 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) )
}