Bird
Raised Fist0
JUnittesting~10 mins

First JUnit test - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test checks if the addition of two numbers works correctly using JUnit. It verifies that 2 + 3 equals 5.

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

public class CalculatorTest {

    @Test
    public void testAddition() {
        int result = 2 + 3;
        assertEquals(5, result, "2 + 3 should equal 5");
    }
}
Execution Trace - 4 Steps
StepActionSystem StateAssertionResult
1Test startsJUnit test runner initializes the CalculatorTest class—PASS
2Runs testAddition methodInside testAddition method, calculation 2 + 3 is performed—PASS
3Calls assertEquals to check if result equals 5assertEquals compares expected value 5 with actual result 5assertEquals(5, result) verifies 5 == 5PASS
4Test completes successfullyTest runner marks testAddition as passed—PASS
Failure Scenario
Failing Condition: If the addition result is not 5, for example if result is 4
Execution Trace Quiz - 3 Questions
Test your understanding
What does the assertEquals method check in this test?
AIf the actual result equals the expected value 5
BIf the test method runs without errors
CIf the CalculatorTest class compiles
DIf the test runner starts correctly
Key Result
Always include clear assertions in your tests to verify expected outcomes. This helps catch errors early and ensures your code works as intended.

Practice

(1/5)
1. What is the main purpose of a JUnit test method marked with @Test?
easy
A. To check if a piece of code works as expected
B. To create a new Java class
C. To print output to the console
D. To declare a variable

Solution

  1. Step 1: Understand the role of @Test annotation

    The @Test annotation marks a method as a test method in JUnit, meaning it will be run to check code behavior.
  2. Step 2: Identify the purpose of test methods

    Test methods verify if the code produces the expected results, helping find bugs or confirm correctness.
  3. Final Answer:

    To check if a piece of code works as expected -> Option A
  4. Quick Check:

    JUnit @Test marks test methods [OK]
Hint: JUnit tests verify code correctness using @Test [OK]
Common Mistakes:
  • Thinking @Test creates classes
  • Confusing test methods with print statements
  • Using @Test to declare variables
2. Which of the following is the correct way to write a simple JUnit 5 test method?
easy
A. public void testMethod() { assertEquals(5, 2 + 3); }
B. void testMethod() { assertEquals(5, 2 + 3); }
C. @Test public void testMethod() { assertEquals(5, 2 + 3); }
D. @Test void testMethod() { System.out.println(5); }

Solution

  1. Step 1: Check for @Test annotation

    JUnit 5 requires the @Test annotation to mark a method as a test.
  2. Step 2: Verify method signature and assertion

    The method should be public void with an assertion like assertEquals(expected, actual). @Test public void testMethod() { assertEquals(5, 2 + 3); } matches this.
  3. Final Answer:

    @Test public void testMethod() { assertEquals(5, 2 + 3); } -> Option C
  4. Quick Check:

    JUnit test method needs @Test and assertion [OK]
Hint: Always use @Test before test methods [OK]
Common Mistakes:
  • Missing @Test annotation
  • Wrong method visibility or return type
  • Using print statements instead of assertions
3. What will be the result of running this JUnit test?
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;

public class SampleTest {
  @Test
  void additionTest() {
    assertEquals(10, 5 + 5);
  }
}
medium
A. Runtime exception occurs
B. Test passes successfully
C. Compilation error due to missing import
D. Test fails with assertion error

Solution

  1. Step 1: Analyze the assertion

    The test asserts that 5 + 5 equals 10, which is true.
  2. Step 2: Check for syntax and imports

    All necessary imports and syntax are correct, so the test will run without errors.
  3. Final Answer:

    Test passes successfully -> Option B
  4. Quick Check:

    Correct assertion means test passes [OK]
Hint: True assertions make tests pass [OK]
Common Mistakes:
  • Assuming test fails when assertion is true
  • Missing static import for assertions
  • Confusing compilation errors with runtime errors
4. Identify the error in this JUnit test code:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalcTest {
  @Test
  public void testSum() {
    int result = 2 + 2;
    assertEquals(5, result);
  }
}
medium
A. The assertion expects wrong value causing test failure
B. Missing @Test annotation
C. Method should return int, not void
D. No import for assertEquals

Solution

  1. Step 1: Check the assertion values

    The test expects 5 but the actual result is 4 (2 + 2), so the assertion will fail.
  2. Step 2: Verify annotations and imports

    The @Test annotation and imports are correct, so no syntax errors exist.
  3. Final Answer:

    The assertion expects wrong value causing test failure -> Option A
  4. Quick Check:

    Assertion mismatch causes test failure [OK]
Hint: Check expected vs actual values in assertions [OK]
Common Mistakes:
  • Ignoring assertion expected value
  • Thinking missing annotation causes failure here
  • Confusing method return types in tests
5. You want to write a JUnit test that checks if a method multiply(int a, int b) returns 0 when one input is 0. Which test method is correct?
hard
A. @Test public void testMultiplyZero() { assertEquals(5, multiply(0, 5)); }
B. public void testMultiplyZero() { assertEquals(0, multiply(0, 5)); }
C. @Test public int testMultiplyZero() { return multiply(0, 5); }
D. @Test public void testMultiplyZero() { assertEquals(0, multiply(0, 5)); }

Solution

  1. Step 1: Confirm @Test annotation and method signature

    The test method must be annotated with @Test and return void. @Test public void testMultiplyZero() { assertEquals(0, multiply(0, 5)); } meets this.
  2. Step 2: Check assertion correctness

    The method should assert that multiplying by zero returns zero. @Test public void testMultiplyZero() { assertEquals(0, multiply(0, 5)); } asserts assertEquals(0, multiply(0, 5)), which is correct.
  3. Final Answer:

    @Test public void testMultiplyZero() { assertEquals(0, multiply(0, 5)); } -> Option D
  4. Quick Check:

    Use @Test, void method, correct assertion [OK]
Hint: Test methods need @Test, void, and correct assertions [OK]
Common Mistakes:
  • Omitting @Test annotation
  • Using wrong return type in test method
  • Asserting wrong expected value
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