0
0
JUnittesting~5 mins

ParameterResolver extension in JUnit - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
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?
AProvides the actual parameter value
BChecks if the resolver can provide a value for the parameter
CRuns the test method
DRegisters the extension
Which annotation is used to register a ParameterResolver in JUnit 5?
A@Test
B@BeforeEach
C@ExtendWith
D@ParameterResolver
What type of parameters can a ParameterResolver inject?
AAny type supported by the resolver
BOnly Strings
COnly objects with default constructors
DOnly primitive types
When is resolveParameter() called during test execution?
ABefore supportsParameter()
BOnly if the test fails
CAfter the test method finishes
DAfter supportsParameter() returns true
What is the main benefit of using ParameterResolver in tests?
ATo inject parameters dynamically and improve test flexibility
BTo write tests faster by skipping assertions
CTo run tests in parallel
DTo automatically generate test data
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.