Both methods come from the org.junit.jupiter.api.Assertions class in JUnit 5.
If the condition fails, the test will stop and show an error.
Examples
This checks that the user's middle name is missing (null).
JUnit
assertNull(user.getMiddleName());
This checks that the database connection is established (not null).
JUnit
assertNotNull(databaseConnection);
This checks that the error message is null and shows a custom message if it is not.
JUnit
assertNull(response.getErrorMessage(), "Error message should be null");
This checks that the API key is present and shows a message if missing.
JUnit
assertNotNull(config.getApiKey(), "API key must be set");
Sample Program
This test class checks if the user's middle name is null or not null using assertNull and assertNotNull.
JUnit
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class UserTest {
static class User {
private String middleName;
public String getMiddleName() { return middleName; }
public void setMiddleName(String middleName) { this.middleName = middleName; }
}
@Test
void testMiddleNameIsNull() {
User user = new User();
assertNull(user.getMiddleName());
}
@Test
void testMiddleNameIsNotNull() {
User user = new User();
user.setMiddleName("Lee");
assertNotNull(user.getMiddleName());
}
}
OutputSuccess
Important Notes
Use assertNull when you expect no value (null).
Use assertNotNull when you expect a value to be present.
Adding a message helps understand test failures quickly.
Summary
assertNull checks if a value is null (empty).
assertNotNull checks if a value is not null (exists).
Both help confirm expected presence or absence of data in tests.
Practice
(1/5)
1. What does the JUnit method assertNull(object) verify in a test?
easy
A. That the object is not null (has a value)
B. That the object is null (has no value)
C. That the object is an instance of a class
D. That the object equals another object
Solution
Step 1: Understand assertNull purpose
The method assertNull checks if the given object is null, meaning it has no value assigned.
Step 2: Compare options with definition
That the object is null (has no value) matches the definition exactly, while others describe different checks.
Final Answer:
That the object is null (has no value) -> Option B
Quick Check:
assertNull = checks null [OK]
Hint: assertNull means value must be null to pass [OK]
Common Mistakes:
Confusing assertNull with assertNotNull
Thinking assertNull checks object type
Assuming assertNull compares equality
2. Which of the following is the correct syntax to assert that an object user is NOT null in JUnit?
easy
A. assertNotNull(user);
B. assertNull(user);
C. assertNotNull user;
D. assertNotNull(user == null);
Solution
Step 1: Identify correct method usage
The correct syntax calls assertNotNull as a method with parentheses and the object as argument.
Step 2: Check each option
assertNotNull(user); uses correct method call syntax. assertNull(user); uses assertNull which is opposite. assertNotNull user; misses parentheses. assertNotNull(user == null); passes a boolean expression, which is incorrect.
Final Answer:
assertNotNull(user); -> Option A
Quick Check:
assertNotNull(object) needs parentheses [OK]
Hint: assertNotNull requires parentheses around the object [OK]
Common Mistakes:
Omitting parentheses in method call
Using assertNull instead of assertNotNull
Passing boolean expressions instead of objects
3. Consider the following JUnit test snippet:
String name = null;
assertNull(name);
name = "Alice";
assertNotNull(name);
What will be the result of running this test?
medium
A. The test will fail at assertNotNull(name)
B. The test will fail at assertNull(name)
C. The test will pass successfully
D. The test will throw a NullPointerException
Solution
Step 1: Analyze first assertion
Initially, name is null, so assertNull(name) passes.
Step 2: Analyze second assertion
Then name is assigned "Alice", which is not null, so assertNotNull(name) passes.
Final Answer:
The test will pass successfully -> Option C
Quick Check:
assertNull(null) and assertNotNull(non-null) pass [OK]
Hint: assertNull passes if null; assertNotNull passes if not null [OK]
Common Mistakes:
Assuming assertNull fails if variable is null
Thinking assertNotNull fails with non-null value
Expecting exceptions from these assertions
4. Identify the error in this JUnit test code:
Object obj = new Object();
assertNull(obj);
medium
A. No error; test will pass
B. Runtime error: NullPointerException
C. Syntax error: missing semicolon
D. assertNull fails because obj is not null
Solution
Step 1: Understand object initialization
The variable obj is assigned a new Object instance, so it is not null.
Step 2: Check assertion behavior
assertNull(obj) expects null, but obj is not null, so the assertion fails.
Final Answer:
assertNull fails because obj is not null -> Option D
Quick Check:
assertNull(non-null) fails test [OK]
Hint: assertNull fails if object is created (not null) [OK]
Common Mistakes:
Assuming assertNull passes with any object
Confusing assertion failure with syntax error
Expecting exceptions instead of assertion failure
5. You have a method getUserEmail() that returns a String email or null if no email is set. Which JUnit assertions correctly test that the email is present and not empty?
hard
A. assertNotNull(email); assertTrue(!email.isEmpty());
B. assertNull(email); assertTrue(email.isEmpty());
C. assertNotNull(email); assertNull(email.isEmpty());
D. assertNull(email); assertFalse(email.isEmpty());
Solution
Step 1: Check for non-null email
Use assertNotNull(email) to ensure email is not null (exists).
Step 2: Check email is not empty string
Use assertTrue(!email.isEmpty()) to confirm email has characters.
Final Answer:
assertNotNull(email); assertTrue(!email.isEmpty()); -> Option A
Quick Check:
Not null and not empty = assertNotNull(email); assertTrue(!email.isEmpty()); [OK]
Hint: Check not null first, then check string is not empty [OK]
Common Mistakes:
Using assertNull when expecting a value
Checking isEmpty on null causing exceptions
Mixing assertNull with isEmpty checks incorrectly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.