如何在单元测试下的 Grails 服务中为字段注入模拟(使用自动装配)?
How to inject a mock for a field (using autowired) in a Grails service that is under unit test?
在我当前的设置中,我想对具有 @autowired
依赖项的 Grails 服务进行单元测试,并为该依赖项注入模拟。
class AcmeService {
@Autowired
FooService fooService // not a Grails service!
}
FooService 不是 Grails 服务,而是来自 FeignClient 的动态实现。我正在寻找一种在 UnitTest 中为 FooService 服务注入 Mock 的方法。执行此操作的最佳解决方案是什么?
我尝试在设置中设置依赖项,但后来我得到了 'Unsatisfied dependency expressed through field fooService'
class AcmeService extends Specification {
FooService mockedFooService = Mock(FooService)
def setup() {
service.fooService = mockedFooService
}
}
您可以将以下内容添加到您的单元测试中:
def doWithSpring = {
fooService( InstanceFactoryBean, Mock(FooService) )
}
在我当前的设置中,我想对具有 @autowired
依赖项的 Grails 服务进行单元测试,并为该依赖项注入模拟。
class AcmeService {
@Autowired
FooService fooService // not a Grails service!
}
FooService 不是 Grails 服务,而是来自 FeignClient 的动态实现。我正在寻找一种在 UnitTest 中为 FooService 服务注入 Mock 的方法。执行此操作的最佳解决方案是什么?
我尝试在设置中设置依赖项,但后来我得到了 'Unsatisfied dependency expressed through field fooService'
class AcmeService extends Specification {
FooService mockedFooService = Mock(FooService)
def setup() {
service.fooService = mockedFooService
}
}
您可以将以下内容添加到您的单元测试中:
def doWithSpring = {
fooService( InstanceFactoryBean, Mock(FooService) )
}