@Target(value={FIELD,PARAMETER}) @Retention(value=RUNTIME) @Documented public @interface Mock
MockedStatic
and infers the static mock type of the type parameter.
public class ArticleManagerTest extends SampleBaseTestCase {
@Mock private ArticleCalculator calculator;
@Mock(name = "database") private ArticleDatabase dbMock;
@Mock(answer = RETURNS_MOCKS) private UserProvider userProvider;
@Mock(extraInterfaces = {Queue.class, Observer.class}) private ArticleMonitor articleMonitor;
@Mock(stubOnly = true) private Logger logger;
private ArticleManager manager;
@Before public void setup() {
manager = new ArticleManager(userProvider, database, calculator, articleMonitor, logger);
}
}
public class SampleBaseTestCase {
private AutoCloseable closeable;
@Before public void openMocks() {
closeable = MockitoAnnotations.openMocks(this);
}
@After public void releaseMocks() throws Exception {
closeable.close();
}
}
MockitoAnnotations.openMocks(this)
method has to be called to initialize annotated objects.
In above example, openMocks()
is called in @Before (JUnit4) method of test's base class.
For JUnit3 openMocks()
can go to setup()
method of a base class.
Instead you can also put openMocks() in your JUnit runner (@RunWith) or use the built-in
MockitoJUnitRunner
. Also, make sure to release any mocks after disposing your test class with a corresponding hook.
Modifier and Type | Optional Element and Description |
---|---|
Answers |
answer
Mock will have custom answer, see
MockSettings.defaultAnswer(Answer) . |
Class<?>[] |
extraInterfaces
Mock will have extra interfaces, see
MockSettings.extraInterfaces(Class[]) . |
boolean |
lenient
Mock will be lenient, see
MockSettings.lenient() . |
String |
name
Mock will have custom name (shown in verification errors), see
MockSettings.name(String) . |
boolean |
serializable
Mock will be serializable, see
MockSettings.serializable() . |
boolean |
stubOnly
Mock will be 'stubOnly', see
MockSettings.stubOnly() . |
public abstract Answers answer
MockSettings.defaultAnswer(Answer)
.
For examples how to use 'Mock' annotation and parameters see Mock
.public abstract boolean stubOnly
MockSettings.stubOnly()
.
For examples how to use 'Mock' annotation and parameters see Mock
.public abstract String name
MockSettings.name(String)
.
For examples how to use 'Mock' annotation and parameters see Mock
.public abstract Class<?>[] extraInterfaces
MockSettings.extraInterfaces(Class[])
.
For examples how to use 'Mock' annotation and parameters see Mock
.public abstract boolean serializable
MockSettings.serializable()
.
For examples how to use 'Mock' annotation and parameters see Mock
.public abstract boolean lenient
MockSettings.lenient()
.
For examples how to use 'Mock' annotation and parameters see Mock
.