2016-12-20 10 views
2

내 현재 설정에서 나는 @autowired 의존성을 가진 Grails 서비스를 단위 테스트하고 의존성에 대한 모의 (mock)를 주입하려고한다.단위 테스트중인 Grails 서비스에서 (autowired를 사용하여) 필드의 모의 (mock)를 삽입하는 방법은 무엇입니까?

class AcmeService { 

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

는 FooService는 Grails의 서비스 아니지만는 FeignClient에서 동적 구현이다. UnitTest에서 FooService 서비스 모의 (Mock)를 주입 할 방법을 찾고 있습니다. 이 작업을 수행하는 가장 좋은 해결책은 무엇입니까?

나는 설정에 의존성을 설정했지만, 그때 나는 당신의 단위 테스트에 다음

class AcmeService extends Specification { 

    FooService mockedFooService = Mock(FooService) 

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

답변

2

가 추가 할 수있는 '불만족 의존성이 필드 fooService 통해 표현'얻을 :

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