The expected parameter defines the exception the test should expect.
If a method is not annotated with @Test, what happens when you run JUnit tests?
AThe method runs as a test anyway
BThe method is not run as a test
CJUnit throws an error
DThe method runs before tests
✗ Incorrect
Only methods with @Test are run as tests.
What is the default behavior if a test method annotated with @Test throws no exception and all assertions pass?
ATest passes
BTest fails
CTest is ignored
DTest is skipped
✗ Incorrect
If no exceptions occur and assertions pass, the test passes.
Which JUnit annotation is used to run a test multiple times, not @Test?
A<code>@Test(repeat = 3)</code>
B<code>@TestMultiple</code>
C<code>@RepeatedTest</code>
D<code>@RunMultiple</code>
✗ Incorrect
@RepeatedTest is used in JUnit 5 to run tests multiple times.
Explain the role of the @Test annotation in JUnit testing.
Think about how JUnit knows which methods to test.
You got /3 concepts.
Describe how you can use the @Test annotation to check if a method throws an expected exception.
Focus on the parameters inside the annotation.
You got /3 concepts.
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
Step 1: Understand the role of @Test
The @Test annotation tells JUnit which methods are test cases to execute.
Step 2: Eliminate unrelated options
Options B, C, and D do not relate to marking test methods.
Final Answer:
To mark a method as a test case that JUnit will run -> Option A
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
Step 1: Recall JUnit test method rules
Test methods must be public, return void, and take no parameters.
Step 2: Check each option
public void testMethod() {} matches all rules. Options B, C, and D violate visibility, return type, or parameters.
Final Answer:
public void testMethod() {} -> Option C
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
Step 1: Analyze the test method logic
The method calculates 2 + 3 and stores in result, then asserts result equals 5.
Step 2: Check assertion correctness
Since 2 + 3 is 5, the assertion assertEquals(5, result) will pass.
Final Answer:
Test passes successfully -> Option B
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
Step 1: Check method visibility
JUnit requires test methods to be public so it can access and run them.
Step 2: Validate other method properties
Test methods must be void and parameterless; private visibility is the error here.
Final Answer:
Test method must be public, not private -> Option A
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
Step 1: Recall JUnit 5 exception testing
JUnit 5 uses assertThrows() inside @Test methods to check exceptions.
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.
Final Answer:
Use @Test with assertThrows() inside the method -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.