<col>
相關對等操作
code
anotation
note
@Before
public void init() {
MockitoAnnotations.initMocks(this);
}
@RunWith(MockitoJUnitRunner.class)
public class MockitoAnnotationTest {
...
用于啟用mockito
List mockList = Mockito.mock(ArrayList.class);
@Mock
List<String> mockedList;
mock出的對象,并不會真正執行對應的方法
List<String> spyList = Mockito.spy(new ArrayList<String>());
@Spy
List<String> spiedList = new ArrayList<String>();
spy出的對象,是會真正執行的
ArgumentCaptor<String> arg = ArgumentCaptor.forClass(String.class);
@Captor
ArgumentCaptor argCaptor;
List mockedList;
@Test
public void whenUseCaptorAnnotation_thenTheSam() {
mockedList.add("one");
Mockito.verify(mockedList).add(argCaptor.capture());
assertEquals("one", argCaptor.getValue());
如果你在mock StatusDao的時候希望自動注入mock出client做為屬性,那麼可以在statusDao增加@InjectMocks
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
3 matchers expected, 1 recorded:
原因: executeStoreProcedure方法的mock中,第一個和第三個參數沒有使用ArgumentMatchers,而第二個參數使用了ArgumentMatchers,這個是不行的,要麼都适用ArgumentMatchers,要麼都不用,比如改成都不用: