模拟迭代器对我有用。参见下面的代码示例:
import static org.junit.Assert.assertEquals;import static org.mockito.Mockito.mock;import static org.mockito.Mockito.when;import java.util.Collection;import java.util.Iterator;import org.junit.Before;import org.junit.Test;public class TestMockedIterator { private Collection<String> fruits; private Iterator<String> fruitIterator; @SuppressWarnings("unchecked") @Before public void setUp() { fruitIterator = mock(Iterator.class); when(fruitIterator.hasNext()).thenReturn(true, true, true, false); when(fruitIterator.next()).thenReturn("Apple") .thenReturn("Banana").thenReturn("Pear"); fruits = mock(Collection.class); when(fruits.iterator()).thenReturn(fruitIterator); } @Test public void test() { int iterations = 0; for (String fruit : fruits) { iterations++; } assertEquals(3, iterations); }}


