This test checks that the divide method throws an ArithmeticException when dividing by zero. It confirms the error handling works as expected.
JUnit
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
public class CalculatorTest {
@Test
void testDivideByZeroThrows() {
Calculator calc = new Calculator();
assertThrows(ArithmeticException.class, () -> {
calc.divide(10, 0);
});
}
}
class Calculator {
public int divide(int a, int b) {
return a / b;
}
}
OutputSuccess
Important Notes
Always test for exceptions to catch bugs early and improve program safety.
Use clear exception types to make tests easy to understand.
Summary
Exception testing ensures your code handles errors properly.
Use assertThrows in JUnit to check for expected exceptions.
This helps prevent crashes and improves user experience.
Practice
(1/5)
1. Why is exception testing important in JUnit for validating error handling?
easy
A. It ensures the code correctly throws expected exceptions when errors occur.
B. It improves the speed of test execution by skipping error cases.
C. It automatically fixes bugs related to exceptions.
D. It prevents exceptions from being thrown during normal execution.
Solution
Step 1: Understand the purpose of exception testing
Exception testing checks if the program throws the right error when something goes wrong.
Step 2: Connect exception testing to error handling validation
By expecting specific exceptions, tests confirm the code handles errors as designed.
Final Answer:
It ensures the code correctly throws expected exceptions when errors occur. -> Option A
Quick Check:
Exception testing = Validates error handling [OK]
Hint: Exception tests confirm errors happen as expected [OK]
Common Mistakes:
Thinking exception tests fix bugs automatically
Believing exception tests speed up all tests
Assuming exception tests stop exceptions from occurring
2. Which JUnit 5 syntax correctly tests that a method throws a NullPointerException?
easy
A. @Test
void test() {
assertThrows(NullPointerException, method());
}
B. @Test
void test() {
assertThrows(NullPointerException.class, () -> method());
}
C. @Test
void test() {
assertThrows(() -> method(), NullPointerException.class);
}
D. @Test
void test() {
assertThrows(method(), NullPointerException.class);
}
Solution
Step 1: Recall correct assertThrows syntax in JUnit 5
The method is: assertThrows(ExceptionClass.class, Executable lambda).
Step 2: Match syntax to options
@Test
void test() {
assertThrows(NullPointerException.class, () -> method());
} uses assertThrows with exception class first, then lambda, which is correct.
assertThrows expects a lambda or Executable, not a direct method call.
Step 2: Identify the mistake in test code
Calling method() directly runs it immediately, causing exception before assertThrows can catch it.
Final Answer:
The method call should be inside a lambda, not called directly. -> Option D
Quick Check:
Use lambda () -> method() in assertThrows [OK]
Hint: Wrap method call in lambda for assertThrows [OK]
Common Mistakes:
Calling method directly inside assertThrows
Thinking checked exceptions are required
Adding unnecessary message argument
5. You want to test a method that throws IOException only when a file is missing. Which approach best validates this error handling using JUnit 5 exception testing?
hard
A. Use assertThrows(IOException.class, () -> method("missing.txt")) and verify exception message contains "not found".
B. Use assertThrows(Exception.class, () -> method("missing.txt")) without checking message.
C. Call method("missing.txt") directly and catch IOException in test method.
D. Use try-catch inside method to suppress IOException and assert no exception thrown.
Solution
Step 1: Choose specific exception type for assertThrows
Testing for IOException ensures only that error triggers the test.
Step 2: Verify exception message for correctness
Checking the message confirms the exception is due to missing file, not other IO errors.
Final Answer:
Use assertThrows(IOException.class, () -> method("missing.txt")) and verify exception message contains "not found". -> Option A
Quick Check:
Specific exception + message check = best validation [OK]
Hint: Test specific exception and check message for accuracy [OK]
Common Mistakes:
Using generic Exception instead of IOException
Not verifying exception message
Suppressing exceptions inside method
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.