使用Mockito来测试Java的行为
发布时间:2020-07-09 06:53:42 所属栏目:Java 来源:互联网
导读:我想测试一个使用Mockito对其进行增强的 java方法.问题是当我不知道如何设定增强工作的期望.以下代码从 an unanswered question in the mockito google group获得: import static org.mockito.Mockito.when;import static org.testng.Assert.assertTrue;impo
我想测试一个使用Mockito对其进行增强的 java方法.问题是当我不知道如何设定增强工作的期望.以下代码从 an unanswered question in the mockito google group获得: 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); } } for循环中的代码不会被执行.设置迭代器的期望不起作用,因为java enhanced for不在内部使用list iterator.设置List.get()方法的期望不是因为增强的实现似乎也不调用列表的get()方法. 任何帮助将不胜感激. 解决方法模拟迭代器为我工作.见下面的代码示例: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,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); } } (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 如何说服其他开发人员不要忽视异常?
- java – GSON解析动态JSON字段
- java获取鼠标在屏幕上坐标的方法
- java – 处理MaxUploadSizeExceededException不能停止上传文
- java web上传文件和下载文件代码片段分享
- 浅谈s:select 标签中list存放map对象的使用
- java – 任何关于官方GWT MVP框架的教程?
- 为什么TimeUnit是java.util.concurrent的成员?
- java – 使用Maven,OSGi和Bndtools
- Java xml出现错误 javax.xml.transform.TransformerExcepti