Package org.mockito.junit.jupiter
Class MockitoExtension
- java.lang.Object
-
- org.mockito.junit.jupiter.MockitoExtension
-
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterEachCallback
,org.junit.jupiter.api.extension.BeforeEachCallback
,org.junit.jupiter.api.extension.Extension
,org.junit.jupiter.api.extension.ParameterResolver
public class MockitoExtension extends java.lang.Object implements org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.ParameterResolver
Extension that initializes mocks and handles strict stubbings. This extension is the JUnit Jupiter equivalent of our JUnit4MockitoJUnitRunner
. Example usage:
If you would like to configure the used strictness for the test class, use@ExtendWith(MockitoExtension.class) public class ExampleTest { @Mock private List<Integer> list; @Test public void shouldDoSomething() { list.add(100); } }
MockitoSettings
.
This extension also supports JUnit Jupiter's method parameters. Use parameters for initialization of mocks that you use only in that specific test method. In other words, where you would initialize local mocks in JUnit 4 by calling@MockitoSettings(strictness = Strictness.STRICT_STUBS) public class ExampleTest { @Mock private List<Integer> list; @Test public void shouldDoSomething() { list.add(100); } }
Mockito.mock(Class)
, use the method parameter. This is especially beneficial when initializing a mock with generics, as you no longer get a warning about "Unchecked assignment". Please refer to JUnit Jupiter's documentation to learn when method parameters are useful.
Lastly, the extension supports JUnit Jupiter's constructor parameters. This allows you to do setup work in the constructor and set your fields to@ExtendWith(MockitoExtension.class) public class ExampleTest { @Mock private List<Integer> sharedList; @Test public void shouldDoSomething() { sharedList.add(100); } @Test public void hasLocalMockInThisTest(@Mock List<Integer> localList) { localList.add(100); sharedList.add(100); } }
final
. Please refer to JUnit Jupiter's documentation to learn when constructor parameters are useful.@ExtendWith(MockitoExtension.class) public class ExampleTest { private final List<Integer> sharedList; ExampleTest(@Mock sharedList) { this.sharedList = sharedList; } @Test public void shouldDoSomething() { sharedList.add(100); } }
-
-
Constructor Summary
Constructors Constructor Description MockitoExtension()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterEach(org.junit.jupiter.api.extension.ExtensionContext context)
Callback that is invoked after each test has been invoked.void
beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
Callback that is invoked before each test is invoked.java.lang.Object
resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext context)
boolean
supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext context)
-
-
-
Method Detail
-
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
Callback that is invoked before each test is invoked.- Specified by:
beforeEach
in interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
- Parameters:
context
- the current extension context; nevernull
-
afterEach
public void afterEach(org.junit.jupiter.api.extension.ExtensionContext context)
Callback that is invoked after each test has been invoked.- Specified by:
afterEach
in interfaceorg.junit.jupiter.api.extension.AfterEachCallback
- Parameters:
context
- the current extension context; nevernull
-
supportsParameter
public boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext context) throws org.junit.jupiter.api.extension.ParameterResolutionException
- Specified by:
supportsParameter
in interfaceorg.junit.jupiter.api.extension.ParameterResolver
- Throws:
org.junit.jupiter.api.extension.ParameterResolutionException
-
resolveParameter
public java.lang.Object resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext context) throws org.junit.jupiter.api.extension.ParameterResolutionException
- Specified by:
resolveParameter
in interfaceorg.junit.jupiter.api.extension.ParameterResolver
- Throws:
org.junit.jupiter.api.extension.ParameterResolutionException
-
-