Recall & Review
beginner
What is a ParameterResolver in JUnit?
A ParameterResolver is an extension in JUnit that allows you to provide parameters to test methods dynamically at runtime.
Click to reveal answer
beginner
Which two methods must be implemented in a ParameterResolver?
You must implement supportsParameter() to check if the parameter can be resolved, and resolveParameter() to provide the actual parameter value.
Click to reveal answer
intermediate
How does JUnit decide to use a ParameterResolver for a test method parameter?
JUnit calls supportsParameter() on registered ParameterResolvers. If it returns true, JUnit uses resolveParameter() to get the value to inject.
Click to reveal answer
beginner
Why use ParameterResolver instead of hardcoding test data?
ParameterResolver helps keep tests clean and reusable by injecting dependencies or test data dynamically, avoiding hardcoded values.
Click to reveal answer
intermediate
Show a simple example of a ParameterResolver that provides a String parameter.
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.ParameterContext;
import org.junit.jupiter.api.extension.ParameterResolver;
public class SimpleStringResolver implements ParameterResolver {
@Override
public boolean supportsParameter(ParameterContext pc, ExtensionContext ec) {
return pc.getParameter().getType() == String.class;
}
@Override
public Object resolveParameter(ParameterContext pc, ExtensionContext ec) {
return "Injected String";
}
}Click to reveal answer
What does the supportsParameter() method do in a ParameterResolver?
✗ Incorrect
supportsParameter() checks if the ParameterResolver can handle the parameter type before providing a value.
Which annotation is used to register a ParameterResolver in JUnit 5?
✗ Incorrect
@ExtendWith is used to register extensions like ParameterResolver in JUnit 5.
What type of parameters can a ParameterResolver inject?
✗ Incorrect
ParameterResolver can inject any parameter type as long as it supports it in supportsParameter().
When is resolveParameter() called during test execution?
✗ Incorrect
resolveParameter() is called only if supportsParameter() returns true for the parameter.
What is the main benefit of using ParameterResolver in tests?
✗ Incorrect
ParameterResolver allows dynamic injection of parameters, making tests more flexible and maintainable.
Explain how a ParameterResolver works in JUnit and why it is useful.
Think about how JUnit decides what value to pass to a test method parameter.
You got /4 concepts.
Describe the steps to create and use a custom ParameterResolver in a JUnit test.
Focus on the interface methods and how to connect the resolver to the test.
You got /4 concepts.