相关疑难解决方法(0)

使用Mockito测试Java增强的行为

我想测试一个使用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()列表的方法.

任何帮助都感激不尽.

java unit-testing for-loop mockito

13
推荐指数
2
解决办法
3万
查看次数

标签 统计

for-loop ×1

java ×1

mockito ×1

unit-testing ×1