Bird
Raised Fist0
JUnittesting~5 mins

@Test annotation in JUnit

Choose your learning style10 modes available
Introduction

The @Test annotation tells JUnit which methods are test cases. It helps run tests automatically without manual calls.

When you want to check if a method in your code works correctly.
When you want to run multiple tests automatically in one go.
When you want to mark a method as a test so JUnit can report pass or fail.
When you want to organize your tests clearly in your test class.
When you want to use assertions inside a method to verify expected results.
Syntax
JUnit
@Test
public void testMethodName() {
    // test code here
}

The method annotated with @Test must be public and void.

No arguments are allowed in the test method.

Examples
This test checks if 2 + 3 equals 5.
JUnit
@Test
public void additionTest() {
    int sum = 2 + 3;
    assertEquals(5, sum);
}
This test checks that the string is not null.
JUnit
@Test
public void stringTest() {
    String text = "hello";
    assertNotNull(text);
}
Sample Program

This test class has one test method multiplyTest that checks if 4 times 5 equals 20.

JUnit
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;

public class CalculatorTest {

    @Test
    public void multiplyTest() {
        int result = 4 * 5;
        assertEquals(20, result);
    }
}
OutputSuccess
Important Notes

Use @Test to mark each test method clearly.

JUnit 5 uses org.junit.jupiter.api.Test package.

Assertions like assertEquals help verify expected results inside @Test methods.

Summary

@Test marks methods as test cases for JUnit to run.

Test methods must be public, void, and take no parameters.

Use assertions inside @Test methods to check results.

Practice

(1/5)
1. What is the main purpose of the @Test annotation in JUnit?
easy
A. To mark a method as a test case that JUnit will run
B. To declare a method as private
C. To specify the return type of a method
D. To import JUnit libraries

Solution

  1. Step 1: Understand the role of @Test

    The @Test annotation tells JUnit which methods are test cases to execute.
  2. Step 2: Eliminate unrelated options

    Options B, C, and D do not relate to marking test methods.
  3. Final Answer:

    To mark a method as a test case that JUnit will run -> Option A
  4. Quick Check:

    @Test marks test methods [OK]
Hint: Remember: @Test means 'run this method as test' [OK]
Common Mistakes:
  • Thinking @Test changes method visibility
  • Confusing @Test with import statements
  • Assuming @Test sets return type
2. Which of the following is the correct syntax for a JUnit test method using @Test?
easy
A. public void testMethod(int x) {}
B. private int testMethod() {}
C. public void testMethod() {}
D. public String testMethod() {}

Solution

  1. Step 1: Recall JUnit test method rules

    Test methods must be public, return void, and take no parameters.
  2. Step 2: Check each option

    public void testMethod() {} matches all rules. Options B, C, and D violate visibility, return type, or parameters.
  3. Final Answer:

    public void testMethod() {} -> Option C
  4. Quick Check:

    Public, void, no params = correct test method [OK]
Hint: Test methods: public + void + no parameters [OK]
Common Mistakes:
  • Making test methods private
  • Adding parameters to test methods
  • Using non-void return types
3. Given the code below, what will be the test result when running with JUnit?
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;

public class SampleTest {
    @Test
    public void checkSum() {
        int result = 2 + 3;
        assertEquals(5, result);
    }
}
medium
A. Runtime exception thrown
B. Test passes successfully
C. Compilation error due to missing return
D. Test fails with assertion error

Solution

  1. Step 1: Analyze the test method logic

    The method calculates 2 + 3 and stores in result, then asserts result equals 5.
  2. Step 2: Check assertion correctness

    Since 2 + 3 is 5, the assertion assertEquals(5, result) will pass.
  3. Final Answer:

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

    2 + 3 = 5, assertion true [OK]
Hint: If assertion matches calculation, test passes [OK]
Common Mistakes:
  • Assuming test fails without checking assertion
  • Confusing compilation errors with test failures
  • Ignoring that test methods return void
4. Identify the error in the following JUnit test method:
import org.junit.jupiter.api.Test;

public class ErrorTest {
    @Test
    private void testHidden() {
        // test code
    }
}
medium
A. Test method must be public, not private
B. Missing return statement in test method
C. Test method should have parameters
D. Missing @BeforeEach annotation

Solution

  1. Step 1: Check method visibility

    JUnit requires test methods to be public so it can access and run them.
  2. Step 2: Validate other method properties

    Test methods must be void and parameterless; private visibility is the error here.
  3. Final Answer:

    Test method must be public, not private -> Option A
  4. Quick Check:

    Test methods must be public [OK]
Hint: Test methods must be public, not private [OK]
Common Mistakes:
  • Making test methods private
  • Adding parameters to test methods
  • Confusing lifecycle annotations with test method requirements
5. You want to write a JUnit test method that checks if a method throws an exception. Which is the correct way to use @Test for this purpose in JUnit 5?
hard
A. Use @Test(expected = Exception.class) annotation parameter
B. Add throws Exception to the test method signature
C. Write a try-catch block without @Test
D. Use @Test with assertThrows() inside the method

Solution

  1. Step 1: Recall JUnit 5 exception testing

    JUnit 5 uses assertThrows() inside @Test methods to check exceptions.
  2. Step 2: Eliminate outdated or incorrect options

    Use @Test(expected = Exception.class) annotation parameter is from JUnit 4 and invalid in JUnit 5. Add throws Exception to the test method signature only declares exception, not tests it. Write a try-catch block without @Test misses @Test.
  3. Final Answer:

    Use @Test with assertThrows() inside the method -> Option D
  4. Quick Check:

    JUnit 5 uses assertThrows() inside @Test [OK]
Hint: JUnit 5 tests exceptions with assertThrows() inside @Test [OK]
Common Mistakes:
  • Using JUnit 4 style @Test(expected=) in JUnit 5
  • Only declaring throws without assertion
  • Not using @Test annotation
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