This test checks if the add method returns the correct sum of 2 and 3. The assertion verifies the expected outcome is 5.
JUnit
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
public class CalculatorTest {
@Test
void testAdd() {
Calculator calculator = new Calculator();
int result = calculator.add(2, 3);
assertEquals(5, result);
}
}
class Calculator {
int add(int a, int b) {
return a + b;
}
}
OutputSuccess
Important Notes
Assertions stop the test immediately if they fail, helping you find errors fast.
Use clear expected values to avoid confusion in tests.
Summary
Assertions confirm your code works as expected.
They help catch bugs early by comparing actual results to expected ones.
Using assertions makes tests reliable and meaningful.
Practice
(1/5)
1. Why do we use assertions in JUnit tests?
easy
A. To pause the test execution
B. To print messages to the console
C. To create new objects in the test
D. To check if the actual output matches the expected output
Solution
Step 1: Understand the purpose of assertions
Assertions are used to compare the actual result of code with what we expect it to be.
Step 2: Identify the correct use in JUnit
JUnit assertions verify correctness by checking if actual equals expected, helping catch errors early.
Final Answer:
To check if the actual output matches the expected output -> Option D
Quick Check:
Assertions verify expected outcomes = A [OK]
Hint: Assertions compare actual vs expected results [OK]
Common Mistakes:
Thinking assertions print messages
Using assertions to create objects
Believing assertions pause tests
2. Which of the following is the correct syntax to assert that two integers are equal in JUnit?
easy
A. assertEquals(expected, actual);
B. assertEqual(actual, expected);
C. assertEquals(actual, expected);
D. assertEqual(expected, actual);
Solution
Step 1: Recall JUnit assertion method signature
The correct method is assertEquals(expected, actual) where expected value comes first.
Step 2: Check each option's parameter order and method name
Only assertEquals(expected, actual); uses assertEquals with expected first, matching JUnit syntax.
Final Answer:
assertEquals(expected, actual); -> Option A
Quick Check:
assertEquals(expected, actual) = B [OK]
Hint: Remember expected value comes first in assertEquals [OK]
Common Mistakes:
Swapping expected and actual parameters
Using assertEqual instead of assertEquals
Confusing parameter order
3. Consider this JUnit test snippet:
int result = calculator.add(2, 3); assertEquals(5, result);
What happens if calculator.add(2, 3) returns 4 instead of 5?
medium
A. The test fails with an assertion error
B. The test passes successfully
C. The test throws a syntax error
D. The test is skipped
Solution
Step 1: Understand assertion behavior on mismatch
If actual result (4) does not equal expected (5), assertEquals fails and throws an error.
Step 2: Identify test outcome
JUnit reports a failure with an assertion error, indicating the test did not pass.
Final Answer:
The test fails with an assertion error -> Option A
Quick Check:
Mismatch causes failure = A [OK]
Hint: Assertion fails if actual ≠ expected [OK]
Common Mistakes:
Thinking test passes despite wrong result
Confusing assertion failure with syntax error
Assuming test is skipped automatically
4. Identify the error in this JUnit assertion:
assertEquals(result, 10);
Assuming result is an integer variable expected to be 10.
medium
A. assertEquals requires a message parameter
B. assertEquals cannot compare integers
C. The parameters are reversed; expected should be first
D. Missing semicolon at the end
Solution
Step 1: Check parameter order in assertEquals
JUnit expects assertEquals(expected, actual), but here actual is first.
Step 2: Confirm other syntax elements
Semicolon is present, integers can be compared, message is optional, so no other errors.
Final Answer:
The parameters are reversed; expected should be first -> Option C
Quick Check:
Expected first in assertEquals = D [OK]
Hint: Expected value always comes first in assertEquals [OK]
Common Mistakes:
Swapping expected and actual parameters
Thinking assertEquals needs a message
Assuming semicolon is missing
5. You want to verify a method returns a non-null string "Hello". Which assertion best verifies both conditions in one test?
hard
A. assertNotNull(result); assertEquals("Hello", result);
B. assertTrue(result != null && result.equals("Hello"));
C. assertEquals("Hello", result);
D. assertNull(result);
Solution
Step 1: Understand the requirement
We want to check result is not null and equals "Hello" in one assertion.
Step 2: Evaluate each option
assertNotNull(result); assertEquals("Hello", result); uses two assertions, not one. assertEquals("Hello", result); checks equality but not null explicitly. assertTrue(result != null && result.equals("Hello")); uses assertTrue with combined condition, verifying both at once. assertNull(result); checks for null, which is opposite.
Final Answer:
assertTrue(result != null && result.equals("Hello")); -> Option B
Quick Check:
Combine conditions in assertTrue = C [OK]
Hint: Use assertTrue with combined condition for multiple checks [OK]
Common Mistakes:
Using multiple assertions instead of one
Not checking for null explicitly
Using assertNull when expecting non-null
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.