2016-12-04 3 views
0

갖는 다음과 같은 클래스 :Spring에서 Set for autowire를 사용하는 동안 동일한 인터페이스를 구현하는 모든 클래스를 모방하는 방법은 무엇입니까?

public class A { 
    @Autowired 
    private Set<IClient> clients; 
} 

public class B implements IClient { } 

public class C implements IClient { } 


@RunWith(MockitoJUnitRunner.class) 
public class Atest { 
    @InjectMocks 
    A a; 

    @Mock 
    IClient clients; 
} 

나는 두 클래스 BC 포함됩니다 인터페이스의 Set에 대한 모의 객체를 사용할 수 있습니까?

답변

2

필드 주입의 생성자 주입을 사용하고 두 개의 모의 객체를 만들고 세트에 넣은 다음 해당 세트로 생성자를 호출하십시오. 예 :

public class Atest { 
    private A a; 

    @Mock 
    private IClient mockAClient; 

    @Mock 
    private IClient mockBClient; 

    @Before 
    public void prepare() { 
     a = new A(new HashSet<>(Arrays.asList(mockAClient, mockBClient)); 
    } 

}