package lesson12;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import java.util.List;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class VerifyModelTest {
@Mock
private List list;
@Test
public void test() {
list.add("test");
verify(list).add("test");
verify(list, atLeastOnce()).add("test");
verify(list, atLeast(1)).add("test");
verify(list, atMost(2)).add("test");
verify(list, never()).add("test111");
assertThat(0, equalTo(list.size()));
}
/**
* only()表示mock出来的list只能调用.add("test")方法 && 只能调用一次 && 不能调用其他方法
*/
@Test
public void test2() {
list.add("test");
// list.add("test"); // open will fail
// list.clear(); // open will fail
verify(list, only()).add("test");
}
@Test
public void test3() {
list.add("test");
verify(list).add("test");
// list.clear(); // open will fail
/**
* 代表上一次verify之后再无与list的交互
*/
verifyNoMoreInteractions(list);
}
@Test
public void test4() {
/**
* 自始至终都与list无任何交互
*/
verifyZeroInteractions(list);
}
}