@Target(value={FIELD,PARAMETER}) @Retention(value=RUNTIME) @Documented public @interface 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;
@Mock(stubOnly = true) private Logger logger;
private ArticleManager manager;
@Before public void setup() {
manager = new ArticleManager(userProvider, database, calculator, articleMonitor, logger);
}
}
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
.
Modifier and Type | Optional Element and Description |
---|---|
Answers |
answer |
Class<?>[] |
extraInterfaces |
String |
name |
boolean |
serializable |
boolean |
stubOnly |