org.mockito
Annotation Type Mock
@Target(value=FIELD)
@Retention(value=RUNTIME)
@Documented
public @interface Mock
Mark a field as a mock.
- Allows shorthand mock creation.
- Minimizes repetitive mock creation code.
- Makes the test class more readable.
- Makes the verification error easier to read because the field name is used to identify the mock.
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;
private ArticleManager manager;
@Before public void setup() {
manager = new ArticleManager(userProvider, database, calculator, articleMonitor);
}
}
public class SampleBaseTestCase {
@Before public void initMocks() {
MockitoAnnotations.initMocks(this);
}
}
MockitoAnnotations.initMocks(this)
method has to be called to initialize annotated objects.
In above example, initMocks()
is called in @Before (JUnit4) method of test's base class.
For JUnit3 initMocks()
can go to setup()
method of a base class.
Instead you can also put initMocks() in your JUnit runner (@RunWith) or use the built-in
MockitoJUnitRunner
.
- See Also:
Mockito.mock(Class)
,
Spy
,
InjectMocks
,
MockitoAnnotations.initMocks(Object)
,
MockitoJUnitRunner
answer
public abstract Answers answer
- Default:
- org.mockito.Answers.RETURNS_DEFAULTS
name
public abstract java.lang.String name
- Default:
- ""
extraInterfaces
public abstract java.lang.Class<?>[] extraInterfaces
- Default:
- {}