2012-07-05 3 views
1

여러 번 바인딩 된 인터페이스의 모든 공급자가 내 모듈에 의해 올바르게 인스턴스화되는지 테스트하려고합니다. 제 모듈에 바인딩하려면 Google Guice v3에서 Multibinder를 사용합니다.Guice의 바인딩 된 인터페이스에 대한 모든 공급자 요청

특정 인터페이스/클래스에 대해 모든 (여러) 공급자를 반환하는 메서드를 찾을 수 없습니다. getProvider()를 사용하면 단일 공급자 만 반환됩니다.

누구나 그 문제에 대한 우아한 해결책이 있습니까?

답변

0

하나의 옵션은 인젝터의 모든 바인딩을 반복하고 예상 인터페이스와 일치하는 것을 선택하는 것입니다.

@Inject void checkBindings(Injector injector){ 
    for(Binding<?> rawbinding : injector.getBindings().values()){ 
    if (rawbinding instanceof BindingImpl){ 
     BindingImpl<?> binding = (BindingImpl<?>)rawbinding; 
     if (binding.getKey().getTypeLiteral().getRawType() == MyInterface.class){ 
     ... 
관련 문제