Dummy objects are simple placeholders used in tests when a parameter is needed but not actually used. They help keep tests clean and focused.
When a method requires an object parameter but the test does not use it.
When you want to satisfy method signatures without adding test complexity.
When you want to isolate the part of the code you are testing from unrelated dependencies.
Syntax
JUnit
SomeClass dummy = new SomeClass();
Dummy objects are usually empty or have minimal implementation.
They do not affect the test outcome but fulfill method requirements.
Examples
A dummy list passed to a method that requires a list but does not use it.
JUnit
List<String> dummyList = new ArrayList<>();
A dummy user object created to satisfy a method parameter.
JUnit
User dummyUser = new User();
Sample Program
This test uses a dummy User object to call the process method. The dummy object is empty but satisfies the method parameter requirement.
JUnit
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.List;
class Service {
public boolean process(User user) {
// Only checks if user isnot null
return user != null;
}
}
class User {
// Empty dummy class
}
public class DummyObjectTest {
@Test
void testProcessWithDummyUser() {
Service service = new Service();
User dummyUser = new User(); // Dummy object
assertTrue(service.process(dummyUser));
}
}
OutputSuccess
Important Notes
Dummy objects should not contain logic or affect test results.
They are different from mocks or stubs which simulate behavior.
Summary
Dummy objects are simple placeholders used to fill method parameters.
They keep tests clean by avoiding unnecessary complexity.
Use dummy objects when the parameter is required but not used in the test.
Practice
(1/5)
1. What is the main purpose of a dummy object in JUnit testing?
easy
A. To perform actual logic and return real data
B. To replace the entire system under test
C. To fill method parameters when the object is not used in the test
D. To generate random test data automatically
Solution
Step 1: Understand dummy object role
Dummy objects are simple placeholders used only to fill method parameters without affecting test logic.
Step 2: Differentiate from other test doubles
Unlike mocks or stubs, dummy objects do not perform any behavior or return values.
Final Answer:
To fill method parameters when the object is not used in the test -> Option C
Quick Check:
Dummy object = placeholder parameter [OK]
Hint: Dummy objects fill unused parameters only [OK]
Common Mistakes:
Confusing dummy objects with mocks or stubs
Thinking dummy objects execute logic
Using dummy objects to test behavior
2. Which of the following is the correct way to create a dummy object for a parameter of type List<String> in JUnit?
easy
A. List<String> dummy = new LinkedList<>(Arrays.asList("test"));
B. List<String> dummy = new ArrayList<>();
C. List<String> dummy = null;
D. List<String> dummy = Mockito.mock(List.class);
Solution
Step 1: Identify dummy object creation
A dummy object should be a simple instance without behavior, so creating an empty ArrayList works.
Step 2: Evaluate other options
Null is not a dummy object; a LinkedList with data is more than dummy; Mockito.mock creates a mock, not a dummy.
Final Answer:
List<String> dummy = new ArrayList<>(); -> Option B
Quick Check:
Empty simple instance = dummy object [OK]
Hint: Use simple empty instance for dummy objects [OK]
Common Mistakes:
Using null instead of a dummy object
Creating mocks instead of dummies
Adding data to dummy objects unnecessarily
3. Consider the following JUnit test snippet:
public void testProcess() {
Processor processor = new Processor();
Data dummyData = new Data(); // dummy object
boolean result = processor.process(dummyData);
assertTrue(result);
}
What is the role of dummyData here?
medium
A. It acts as a dummy object to satisfy method parameter
B. It provides real data for processing
C. It mocks the Data class behavior
D. It stubs the process method output
Solution
Step 1: Analyze dummyData usage
dummyData is created but not configured or used to affect logic, so it acts as a placeholder.
Step 2: Understand dummy vs mock/stub
It is not mocking or stubbing behavior, just filling the parameter for process method.
Final Answer:
It acts as a dummy object to satisfy method parameter -> Option A
Quick Check:
Dummy object = unused parameter filler [OK]
Hint: Dummy objects fill parameters without behavior [OK]
Common Mistakes:
Assuming dummyData affects test logic
Confusing dummy with mock or stub
Thinking dummyData controls output
4. Identify the error in this JUnit test using a dummy object:
@Test
public void testCalculate() {
Calculator calc = new Calculator();
int result = calc.calculate(null); // passing null as dummy
assertEquals(0, result);
}
medium
A. Test method missing @Before annotation
B. The assertEquals syntax is incorrect
C. Calculator class cannot be instantiated
D. Passing null instead of a dummy object may cause NullPointerException
Solution
Step 1: Check dummy object usage
Passing null is not a dummy object; it may cause NullPointerException if method uses the parameter.
Step 2: Verify other options
assertEquals syntax is correct; Calculator instantiation is valid; @Before is optional here.
Final Answer:
Passing null instead of a dummy object may cause NullPointerException -> Option D
Quick Check:
Null ≠ dummy object [OK]
Hint: Never use null as dummy object [OK]
Common Mistakes:
Using null instead of dummy object
Ignoring possible NullPointerException
Confusing test annotations
5. You have a method sendEmail(User user, EmailContent content) where content is not used in your test. How should you use a dummy object for content in your JUnit test to keep it clean and safe?
hard
A. Create an empty EmailContent instance with default constructor
B. Pass null for content parameter
C. Use a Mockito mock for EmailContent
D. Create EmailContent with real data for testing
Solution
Step 1: Understand dummy object purpose
Since content is unused, a simple empty instance suffices as dummy.
Step 2: Avoid null and mocks for dummy
Null risks errors; mocks add complexity; real data is unnecessary here.
Final Answer:
Create an empty EmailContent instance with default constructor -> Option A
Quick Check:
Empty instance = dummy object [OK]
Hint: Use simple empty instance for unused parameters [OK]
Common Mistakes:
Passing null causing NullPointerException
Using mocks instead of dummy objects
Adding unnecessary real data
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.