我想测试一个使用Mockito对其进行增强的java方法.问题是,当我不知道如何设置增强的工作期望.以下代码来自mockito google组中未解决的问题:
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.mockito.Mockito;
import org.testng.annotations.Test;
public class ListTest
{
@Test
public void test()
{
List<String> mockList = Mockito.mock(List.class);
Iterator<String> mockIterator = Mockito.mock(Iterator.class);
when(mockList.iterator()).thenReturn(mockIter);
when(mockIter.hasNext()).thenReturn(true).thenReturn(false);
when(mockIter.next()).thenReturn("A");
boolean flag = false;
for(String s : mockList) {
flag = true;
}
assertTrue(flag);
}
}
Run Code Online (Sandbox Code Playgroud)
for循环中的代码永远不会被执行.设置迭代器的期望不起作用,因为java增强的内部不使用列表迭代器.设置List.get()方法的期望也不是因为实现的增强似乎也没有调用get()列表的方法.
任何帮助都感激不尽.