(七) 使用注解来快速模拟
虫师 创建于 about 7 years 之前
最后更新: less than a minute 之前
阅读数: 311
在前面的测试中我们在每个测试方法里都mock了一个List对象,为了避免重复的mock,是测试类更具有可读性,我们可以使用下面的注解方式来快速模拟对象:
import org.junit.Test;
import org.mockito.Mock;
import static org.mockito.Mockito.*;
import java.util.List;
public class MockitoDemo2 {
@Mock
private List mockList;
@Test
public void shorthand(){
mockList.add(1);
verify(mockList).add(1);
}
}
运行这个测试类你会发现报NullPointerException
错,mock的对象为NULL,为此我们必须在基类中添加初始化mock的代码:
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.mockito.Mockito.*;
import java.util.List;
public class MockitoDemo2 {
@Mock
private List mockList;
public MockitoDemo2(){
MockitoAnnotations.initMocks(this);
}
@Test
public void shorthand(){
mockList.add(1);
verify(mockList).add(1);
}
}
或者使用built-in runner:MockitoJUnitRunner:
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.mockito.Mockito.*;
import java.util.List;
@RunWith(MockitoJUnitRunner.class)
public class MockitoDemo2 {
@Mock
private List mockList;
@Test
public void shorthand(){
mockList.add(1);
verify(mockList).add(1);
}
}