Bird
Raised Fist0
JUnittesting~15 mins

assertNotEquals in JUnit - Build an Automation Script

Choose your learning style10 modes available
Verify that two different strings are not equal using assertNotEquals
Preconditions (2)
Step 1: Create two string variables with different values, for example, 'Hello' and 'World'
Step 2: Use assertNotEquals to verify that these two strings are not equal
✅ Expected Result: The test passes because the two strings are different
Automation Requirements - JUnit 5
Assertions Needed:
assertNotEquals to verify two values are not equal
Best Practices:
Use descriptive test method names
Keep tests independent and simple
Use static import for Assertions for cleaner code
Automated Solution
JUnit
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import org.junit.jupiter.api.Test;

public class AssertNotEqualsTest {

    @Test
    void testStringsAreNotEqual() {
        String first = "Hello";
        String second = "World";
        assertNotEquals(first, second, "Strings should not be equal");
    }
}

This test class uses JUnit 5. We import assertNotEquals statically for cleaner code. The test method testStringsAreNotEqual creates two different strings, first and second. Then it calls assertNotEquals to check they are not the same. If they are different, the test passes. The message helps explain the assertion if it fails.

Common Mistakes - 3 Pitfalls
Using assertEquals instead of assertNotEquals
Not importing Assertions statically
Comparing variables with the same value
Bonus Challenge

Now add data-driven testing with 3 different pairs of strings to verify assertNotEquals works for all

Show Hint

Practice

(1/5)
1. What does the JUnit method assertNotEquals check in a test?
easy
A. That two values are not the same
B. That two values are equal
C. That a value is true
D. That a value is null

Solution

  1. Step 1: Understand the purpose of assertNotEquals

    This method is used to verify that two values are different, meaning they should not be equal.
  2. Step 2: Compare with other assertions

    Unlike assertEquals which checks equality, assertNotEquals ensures values differ.
  3. Final Answer:

    That two values are not the same -> Option A
  4. Quick Check:

    assertNotEquals means values differ [OK]
Hint: Remember: 'NotEquals' means values must differ [OK]
Common Mistakes:
  • Confusing assertNotEquals with assertEquals
  • Thinking it checks for null values
  • Assuming it checks boolean true
2. Which of the following is the correct syntax to assert that two integers are not equal in JUnit with a custom error message?
easy
A. assertNotEquals(5, 10);
B. assertNotEquals(5 == 10);
C. assertNotEquals(5, 10, "Error");
D. assertNotEquals(5 != 10);

Solution

  1. Step 1: Review method signatures

    JUnit's assertNotEquals can take two values and an optional message as the last parameter.
  2. Step 2: Check each option

    assertNotEquals(5, 10); is valid but lacks a message; assertNotEquals(5, 10, "Error"); is correct syntax with message; Options B and C are invalid because they misuse boolean expressions.
  3. Final Answer:

    assertNotEquals(5, 10, "Error"); -> Option C
  4. Quick Check:

    Correct syntax includes values and optional message [OK]
Hint: Use assertNotEquals(value1, value2, message) for clarity [OK]
Common Mistakes:
  • Passing boolean expressions instead of values
  • Omitting required parameters
  • Using incorrect parameter order
3. What will happen when the following JUnit test runs?
int a = 3;
int b = 3;
assertNotEquals(a, b);
medium
A. Compilation error due to wrong syntax
B. Test passes because a and b are equal
C. Test passes because a and b are not equal
D. Test fails because a and b are equal

Solution

  1. Step 1: Analyze variable values

    Both a and b are assigned the value 3, so they are equal.
  2. Step 2: Understand assertNotEquals behavior

    assertNotEquals expects the two values to be different. Since they are equal, the assertion fails and the test fails.
  3. Final Answer:

    Test fails because a and b are equal -> Option D
  4. Quick Check:

    Equal values cause assertNotEquals to fail [OK]
Hint: assertNotEquals fails if values are the same [OK]
Common Mistakes:
  • Thinking test passes when values are equal
  • Confusing assertNotEquals with assertEquals
  • Assuming syntax error without checking code
4. Identify the error in this JUnit test snippet:
String expected = "hello";
String actual = "hello";
assertNotEquals(expected, actual);
medium
A. Test fails because expected and actual are equal
B. No error; test passes
C. Syntax error due to missing message
D. NullPointerException at runtime

Solution

  1. Step 1: Check values of variables

    Both expected and actual hold the string "hello", so they are equal.
  2. Step 2: Understand assertNotEquals effect

    The assertion expects different values. Since they are equal, the test fails but no syntax or runtime error occurs.
  3. Final Answer:

    Test fails because expected and actual are equal -> Option A
  4. Quick Check:

    Equal strings cause assertNotEquals to fail [OK]
Hint: assertNotEquals fails if strings match exactly [OK]
Common Mistakes:
  • Assuming test passes when strings are equal
  • Thinking message parameter is mandatory
  • Expecting runtime exceptions incorrectly
5. You want to test that a method generateId() never returns the value 0. Which JUnit assertion using assertNotEquals correctly tests this with 0 as the first argument and a custom message?
hard
A. assertNotEquals(0, 0, "ID should not be zero");
B. assertNotEquals(0, generateId(), "ID should not be zero");
C. assertNotEquals(generateId(), 0);
D. assertNotEquals("0", generateId());

Solution

  1. Step 1: Identify correct parameter order and message

    The expected forbidden value is 0, so it should be the first parameter. The actual value is from generateId(). Adding a message helps explain failure.
  2. Step 2: Evaluate options for correctness

    assertNotEquals(0, generateId(), "ID should not be zero"); correctly uses assertNotEquals(0, generateId(), "ID should not be zero"). assertNotEquals(generateId(), 0); misses the message and reverses parameters. assertNotEquals(0, 0, "ID should not be zero"); compares 0 to 0, which always fails. assertNotEquals("0", generateId()); compares string "0" to int, which is incorrect.
  3. Final Answer:

    assertNotEquals(0, generateId(), "ID should not be zero"); -> Option B
  4. Quick Check:

    Use expected value first, actual second, with message [OK]
Hint: Put expected value first, actual second, add message [OK]
Common Mistakes:
  • Swapping expected and actual parameters
  • Comparing different data types
  • Omitting helpful failure message
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard