Package com.atlassian.jira.junit.rules
Class MockitoContainer
java.lang.Object
com.atlassian.jira.junit.rules.MockitoContainer
- All Implemented Interfaces:
org.junit.rules.TestRule
Rule that combines mockito initialization with
MockComponentContainer. This will take care of initializing mocks using
Mockito and also putting them in a mock component container so that they're available via
ComponentAccessor.getComponent(Class). After the test has run, the mock
container will be tear down so that next test does not accidentally access stale state.
Usage:
@Rule public MockitoContainer mockitoContainer = new MockitoContainer(this);
@Mock
@AvailableInContainer
private UserService mockUserService;
@Mock private JiraAuthenticationContext jiraAuthenticationContext;
where the userService will be available via ComponentAccessor, but the
jiraAuthenticationContext will just be instantiated as a Mockito mock without adding it to the container.
The rule also gives the ability to access the initialized MockComponentWorker, which allows you to
manipulate the mocks directly from tests or add additional mocks that are only needed by some of the tests
or otherwise could not be made available using the @AvailableInContainer annotation.
Example:
@Rule public MockitoContainer mockitoContainer = new MockitoContainer(this);
@Mock
public void testSomething() {
mockitoContainer.getMockWorker().getMockUserKeyService().setMapping("fredkey", "FredName");
mockitoContainer.getMockWorker().addMock(ComponentInterface.class, new MockComponentImpl());
(...)
}
For JUnit5 use MockComponentContainerExtension instead.- Since:
- v6.1
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.junit.runners.model.Statementapply(org.junit.runners.model.Statement base, org.junit.runner.Description description) org.junit.rules.RuleChainA shorthand for getMockComponentContainer().getMockWorker()
-
Constructor Details
-
MockitoContainer
-
-
Method Details
-
apply
public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description) - Specified by:
applyin interfaceorg.junit.rules.TestRule
-
getMockComponentContainer
-
getMockWorker
A shorthand for getMockComponentContainer().getMockWorker()- Returns:
- worker
-
getInnerChain
public org.junit.rules.RuleChain getInnerChain()
-