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.