Mockito框架 mock 调用父类方法
当我们使用Mockito框架mock调用父类方法时,总是会真实去调用父类的方法,那怎么才能mock掉呢,下边直接上代码
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.InjectMocks;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnitRunner;
class Parent {
public void save() {
System.out.println("save...");
}
}
class Child extends Parent {
public void run() {
System.out.println("run...");
save();
}
}
@RunWith(MockitoJUnitRunner.class)
public class CallParentTest {
@InjectMocks
private Child bean;
@Before
public void before() throws Exception {
//因为Answers.CALLS_REAL_METHODS这个参数,可以保证真实方法的调用,这就可以作为方法调用的入口,进行单元测试;
bean = Mockito.mock(Child.class, Answers.CALLS_REAL_METHODS);
MockitoAnnotations.initMocks(this);
}
@Test
public void test() {
// mock 调用
Mockito.doNothing().when(bean).save();
bean.run();
}
}
// ### 输出
// run...

浙公网安备 33010602011771号