Bird
Raised Fist0
JUnittesting~10 mins

assertNotEquals in JUnit - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test checks that two strings are not equal using assertNotEquals in JUnit. It verifies that the actual output differs from an incorrect expected value.

Test Code - JUnit 5
JUnit
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import org.junit.jupiter.api.Test;

public class NotEqualsTest {
    @Test
    public void testStringsAreNotEqual() {
        String actual = "Hello World";
        String wrongExpected = "Hello Jupiter";
        assertNotEquals(wrongExpected, actual, "Strings should not be equal");
    }
}
Execution Trace - 6 Steps
StepActionSystem StateAssertionResult
1Test startsJUnit test runner initialized—PASS
2Runs testStringsAreNotEqual methodMethod execution begins—PASS
3Assigns actual = "Hello World"Variable actual holds "Hello World"—PASS
4Assigns wrongExpected = "Hello Jupiter"Variable wrongExpected holds "Hello Jupiter"—PASS
5Calls assertNotEquals(wrongExpected, actual, "Strings should not be equal")Comparing "Hello Jupiter" and "Hello World"Verify that wrongExpected != actualPASS
6Test completes successfullyNo exceptions thrown—PASS
Failure Scenario
Failing Condition: If actual and wrongExpected strings are equal
Execution Trace Quiz - 3 Questions
Test your understanding
What does assertNotEquals verify in this test?
AThat the actual string is null
BThat the two strings are the same
CThat the two strings are different
DThat the expected string is empty
Key Result
Use assertNotEquals to confirm two values are different, helping catch unexpected equality bugs.

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