@Target(value=FIELD)
@Retention(value=RUNTIME)
@Documented
@Inherited
public @interface MockNice
null
or false
)). This eliminates the need to setup and tear-down mocks manually which
minimizes repetitive test code and makes the test more readable. In order for
PowerMock to control the life-cycle of the mocks you must supply the
PowerMockListener
annotation to the class-level of the test case. For
example when using the EasyMock API:
@PowerMockListener(EasyMockAnnotationEnabler.class) public class PersonServiceTest { @MockNice private PersonDao personDaoMock; private PersonService classUnderTest; @Before public void setUp() { classUnderTest = new PersonService(personDaoMock); } ... }
Note that you can also create partial mocks by using the annotation. Let's say that the PersonService has a method called "getPerson" and another method called "savePerson" and these are the only two methods that you'd like to mock. Rewriting the previous example to accommodate this will give us the following test:
@PowerMockListener(EasyMockAnnotationEnabler.class) public class PersonServiceTest { @MockNice({"getPerson", "savePerson"}) private PersonDao personDaoMock; private PersonService classUnderTest; @Before public void setUp() { classUnderTest = new PersonService(personDaoMock); } ... }
Modifier and Type | Optional Element and Description |
---|---|
java.lang.String[] |
value |