Why doesn't JUnit provide assertNotEquals methods?

assert, java, junit

Solution

I'd suggest you use the newer `assertThat()` style asserts, which can easily describe all kinds of negations and automatically build a description of what you expected and what you got if the assertion fails:

assertThat(objectUnderTest, is(not(someOtherObject)));
assertThat(objectUnderTest, not(someOtherObject));
assertThat(objectUnderTest, not(equalTo(someOtherObject)));

All three options are equivalent, choose the one you find most readable.

To use the simple names of the methods (and allow this tense syntax to work), you need these imports:

import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;

Problem

Does anybody know why JUnit 4 provides `assertEquals(foo,bar)` but not `assertNotEqual(foo,bar)` methods? It provides `assertNotSame` (corresponding to `assertSame`) and `assertFalse` (corresponding to `assertTrue`), so it seems strange that they didn't bother including `assertNotEqual`. By the way, I know that JUnit-addons provides the methods I'm looking for. I'm just asking out of curiosity.

Original source