如何在单元测试下的Grails服务中为字段注入模拟(使用自动装配)?

时间:2016-12-20 08:37:29

标签: grails spock grails3.2.0

在我目前的设置中,我希望对具有@autowired依赖关系的Grails服务进行单元测试,并为依赖项注入模拟。

class AcmeService {

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

FooService不是Grails服务,但它是FeignClient的动态实现。我正在寻找一种方法在UnitTest中为FooService服务注入一个Mock。这样做的最佳解决方案是什么?

我尝试在设置中设置依赖关系,但后来我通过字段fooService'

表达了不满意的依赖关系
class AcmeService extends Specification {

    FooService mockedFooService = Mock(FooService)

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

1 个答案:

答案 0 :(得分:2)

您可以将以下内容添加到单元测试中:

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