Java 如何JUnit测试迭代器
例如,如何测试:Java 如何JUnit测试迭代器,java,unit-testing,testing,junit,Java,Unit Testing,Testing,Junit,例如,如何测试: ArrayList<String> list = new ArrayList<String>(); list.iterator(); ArrayList list=new ArrayList(); iterator(); 如何测试这个“iterator()”方法 谢谢。我能想到的几个测试是: 在空集合上测试hasNext(返回false) 在空集合上测试next()(引发异常) 对具有一个项的集合测试hasNext(多次返回true) 对具有一个项
ArrayList<String> list = new ArrayList<String>();
list.iterator();
ArrayList list=new ArrayList();
iterator();
如何测试这个“iterator()
”方法
谢谢。我能想到的几个测试是:
- 在空集合上测试hasNext(返回false)
- 在空集合上测试next()(引发异常)
- 对具有一个项的集合测试hasNext(多次返回true)
- 对具有一个项的集合测试hasNext/next:hasNext返回true,next返回该项,hasNext返回false,两次
- 在该集合上测试删除:检查后的大小是否为0
- 再次删除测试:异常
- 对包含多个项的集合进行最终测试,确保迭代器以正确的顺序遍历每个项(如果有)
- 从集合中删除所有元素:集合现在为空
现在这意味着:返回基础集合的下一个元素,或者抛出异常并告知是否有后续元素。只需在迭代器上调用这些方法并断言结果。为什么要测试
迭代器()
?我为我的一个类编写了自己的迭代器,我想测试关于迭代器的所有内容(可能是next(),hasNext()…空案例内容),以添加到这个全面的响应中。另一个测试可以是:当迭代器在列表上迭代时,同时更改列表元素时,检查异常,如ConcurrentModificationException
。您应该删除这个答案,@piotrek:问题是关于测试实现迭代器的类,而不是测试迭代器本身。此外,测试迭代器本身是不可能的,因为它是一个接口。