How to JUnit test a iterator

java, junit, testing, unit-testing

Solution

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.

Problem

For example, how do I test: ``` ArrayList<String> list = new ArrayList<String>(); list.iterator(); ``` How to test this "`iterator()`" method? Thanks.

Original source