public class

MockitoContainer

extends Object
implements TestRule
java.lang.Object
   ↳ com.atlassian.jira.junit.rules.MockitoContainer

Class Overview

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 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());
         (...)
     }
 

Summary

Public Constructors
MockitoContainer(Object test)
Public Methods
Statement apply(Statement base, Description description)
RuleChain getInnerChain()
MockComponentContainer getMockComponentContainer()
MockComponentWorker getMockWorker()
A shorthand for getMockComponentContainer().getMockWorker()
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.junit.rules.TestRule

Public Constructors

public MockitoContainer (Object test)

Public Methods

public Statement apply (Statement base, Description description)

public RuleChain getInnerChain ()

public MockComponentContainer getMockComponentContainer ()

public MockComponentWorker getMockWorker ()

A shorthand for getMockComponentContainer().getMockWorker()

Returns
  • worker