JJ Liu JJ Liu - 1 year ago 103
Java Question

How to JUnit test a iterator

For example, how do I test:

ArrayList<String> list = new ArrayList<String>();
list.iterator();


How to test this "
iterator()
" method?

Thanks.

Answer Source

The few tests I can think of are:

  • test hasNext on an empty collection (returns false)
  • test next() on an empty collection (throws exception)
  • test hasNext on a collection with one item (returns true, several times)
  • test hasNext/next on a collection with one item: hasNext returns true, next returns the item, hasNext returns false, twice
  • test remove on that collection: check size is 0 after
  • test remove again: exception
  • final test with a collection with several items, make sure the iterator goes through each item, in the correct order (if there is one)
  • remove all elements from the collection: collection is now empty

You can also have a look at the tests used in openJDK.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download