public class DefaultMockitoSessionBuilder extends java.lang.Object implements MockitoSessionBuilder
Modifier and Type | Field and Description |
---|---|
private MockitoSessionLogger |
logger |
private java.lang.String |
name |
private Strictness |
strictness |
private java.util.List<java.lang.Object> |
testClassInstances |
Constructor and Description |
---|
DefaultMockitoSessionBuilder() |
Modifier and Type | Method and Description |
---|---|
MockitoSessionBuilder |
initMocks(java.lang.Object... testClassInstances)
Adds the test class instances for initialization of fields annotated with Mockito annotations
like
Mock . |
MockitoSessionBuilder |
initMocks(java.lang.Object testClassInstance)
Adds the test class instance for initialization of fields annotated with Mockito annotations
like
Mock . |
MockitoSessionBuilder |
logger(MockitoSessionLogger logger)
Configures logger used by
MockitoSession for emitting
warnings when finishing the session. |
MockitoSessionBuilder |
name(java.lang.String name)
Configures the name of the
MockitoSession instance. |
MockitoSession |
startMocking()
Starts new mocking session! Creates new
MockitoSession instance to initialize the session. |
MockitoSessionBuilder |
strictness(Strictness strictness)
Configures strictness of
MockitoSession instance. |
private java.util.List<java.lang.Object> testClassInstances
private java.lang.String name
private Strictness strictness
private MockitoSessionLogger logger
public MockitoSessionBuilder initMocks(java.lang.Object testClassInstance)
MockitoSessionBuilder
Mock
.
When this method is invoked it does not perform initialization of mocks on the spot!
Only when MockitoSessionBuilder.startMocking()
is invoked then annotated fields will be initialized.
Traditional API to initialize mocks, the MockitoAnnotations.initMocks(Object)
method
has limited support for driving cleaner tests because it does not support configuring Strictness
.
Want cleaner tests and better productivity?
Migrate from MockitoAnnotations.initMocks(Object)
to MockitoSession
!
This method may be called multiple times to add multiple, e.g. nested, test class instances.
See code sample in MockitoSession
.
initMocks
in interface MockitoSessionBuilder
testClassInstance
- test class instance that contains fields with Mockito annotations to be initialized.
Passing null
is permitted but will be ignored.MockitoSession
.public MockitoSessionBuilder initMocks(java.lang.Object... testClassInstances)
MockitoSessionBuilder
Mock
.
In most scenarios, you only need to init mocks on a single test class instance. This method is useful for advanced framework integrations (like JUnit Jupiter), when a test uses multiple, e.g. nested, test class instances.
This method calls MockitoSessionBuilder.initMocks(Object)
for each passed test class instance.
initMocks
in interface MockitoSessionBuilder
testClassInstances
- test class instances that contains fields with Mockito annotations to be initialized.
Passing null
or an empty array is permitted but will be ignored.MockitoSession
.MockitoSessionBuilder.initMocks(Object)
public MockitoSessionBuilder name(java.lang.String name)
MockitoSessionBuilder
MockitoSession
instance.
The name is used to output hints when finishing a session.
This method is intended to be used by framework integrations, e.g. JUnit. When building
a MockitoSession
for direct use, users are not expected to call it.
name
in interface MockitoSessionBuilder
name
- of MockitoSession
instance.
Passing null
is permitted and will make the session use a default value.
The current default is the name of the last test class instance passed to
MockitoSessionBuilder.initMocks(Object)
or MockitoSessionBuilder.initMocks(Object...)
, if available;
otherwise, "<Unnamed Session>"
is used.MockitoSession
.MockitoHint
public MockitoSessionBuilder strictness(Strictness strictness)
MockitoSessionBuilder
MockitoSession
instance.
See examples in MockitoSession
.strictness
in interface MockitoSessionBuilder
strictness
- for MockitoSession
instance.
Passing null
is permitted and will make the session use a default value.
The current default is Strictness.STRICT_STUBS
.MockitoSession
.public MockitoSessionBuilder logger(MockitoSessionLogger logger)
MockitoSessionBuilder
MockitoSession
for emitting
warnings when finishing the session.
Please note that the use of strict stubs is
recommended over emitting warnings because warnings are easily ignored and spoil the log output.
Instead of using this method, please consider setting strictness with MockitoSessionBuilder.strictness(Strictness)
.
logger
in interface MockitoSessionBuilder
logger
- for warnings emitted when finishing MockitoSession
.
Passing null
is permitted and will make the session use a default value.
By default, warnings will be logged to the console.MockitoSession
.MockitoHint
public MockitoSession startMocking()
MockitoSessionBuilder
MockitoSession
instance to initialize the session.
At this point annotated fields are initialized per MockitoSessionBuilder.initMocks(Object)
method.
When you are done with the session it is required to invoke MockitoSession.finishMocking()
.
This will trigger stubbing validation, cleaning up the internal state like removal of internal listeners.
Mockito tracks created sessions internally and prevents the user from creating new sessions without
using MockitoSession.finishMocking()
.
When you run tests concurrently in multiple threads, it is legal for each thread to have single active Mockito session.
When you attempt to start new session in a thread that already has an unfinished session
UnfinishedMockingSessionException
will be triggered.
See examples in MockitoSession
.
startMocking
in interface MockitoSessionBuilder
MockitoSession
instance