2015-01-27 1 views

답변

1

다음 중 하나를

class Bar { 
    public Set<Foo> getFoos(); 
} 

코드를 테스트중인 :

for (int i = 0; i < n; ++i) { 
    Bar bar = computeBar(); 
    for (Foo f : bar.getFoos()) { 
    // code 
    } 
} 

기대 블록 단일 집합 또는

final Set<Foo> foos1 = new HashSet<Foo>(asList(foo1, foo2)); 
final Set<Foo> foos2 = new HashSet<Foo>(asList(foo3, foo4, foo5)); 
new Expectations() {{ bar.getFoos(); returns(foos1, foos2); }}; 

집합 시퀀스를 반환합니다.

+0

감사합니다.하지만 내 질문에 오해했습니다. 'bar.getFoos()'가 호출 될 때마다 같은 값을 반환 할 것을 제안하지만, 매번 다른 값을 반환하고 싶다면 어떻게해야할까요? 그것은'returns (Set s1, Set s2)를 호출하는 것을 의미합니다. 그러나 이상적으로, 나는 여러 세트를'return' 함수에 전달할 수 있어야합니다. 'returns (int of array) '를 호출하여 원시 타입으로 할 수는 있지만 generic 콜렉션의 배열을 만들 수 없기 때문에'Sets'로 할 수는 없습니다. – kai

+0

기본적으로 가능한 한 동적으로 테스트 기대를 만드는 방법을 묻습니다. 그런 다음 단일 매개 변수화 된 테스트를 작성하고 다른 매개 변수를 전달합니다. – kai

+0

@kai 나는 대답을 편집했다. 녹음 API는 매우 융통성이 있으며 하나 이상의 'Foo'세트로 변환 할 수있는 모든 것을 허용합니다. –