<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,要么都不用,比如改成都不用: