JJ Liu
JJ Liu

Reputation: 1421

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.

Upvotes: 12

Views: 25710

Answers (1)

assylias
assylias

Reputation: 328568

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.

Upvotes: 21

Related Questions