CollectionAssert in jUnit?
Using JUnit 4.4 you can use assertThat()
together with the Hamcrest code (don't worry, it's shipped with JUnit, no need for an extra .jar
) to produce complex self-describing asserts including ones that operate on collections:
import static org.junit.Assert.assertThat;import static org.junit.matchers.JUnitMatchers.*;import static org.hamcrest.CoreMatchers.*;List<String> l = Arrays.asList("foo", "bar");assertThat(l, hasItems("foo", "bar"));assertThat(l, not(hasItem((String) null)));assertThat(l, not(hasItems("bar", "quux")));// check if two objects are equal with assertThat()// the following three lines of code check the same thing.// the first one is the "traditional" approach,// the second one is the succinct version and the third one the verbose one assertEquals(l, Arrays.asList("foo", "bar")));assertThat(l, is(Arrays.asList("foo", "bar")));assertThat(l, is(equalTo(Arrays.asList("foo", "bar"))));
Using this approach you will automagically get a good description of the assert when it fails.
Take a look at FEST Fluent Assertions. IMHO they are more convenient to use than Hamcrest (and equally powerful, extensible etc) and have better IDE support thanks to fluent interface. See https://github.com/alexruiz/fest-assert-2.x/wiki/Using-fest-assertions