您如何测试 Iterator/ListIterator 是否有效?

How do you test that an Iterator/ListIterator works?

我有一个单链表的实现。我为这个class写了一个ListIterator。我如何测试 ListIterator 的实现是否有效?到目前为止,我已经在我的链接列表的一个实例上使用了 for-each loop,它是有效的。我还需要通过哪些其他方式对其进行测试?

通常,除了 "normal" 案例之外,您还想测试所有边缘案例。也许:

  • 使用空列表进行测试
  • 测试
  • 中的一些空值
  • 测试如果 hasNext() returns false 并且您尝试获取另一个元素时抛出异常
  • 测试移除()
  • 删除最后一个元素时测试 remove()
  • 测试调用 remove() 两次抛出异常

等..