用Mockito中spy方法去spy该待测试类,并在调用该待测方法时用spy出来的类去调用
下面举例展示一些 待测类和方法的测试。
待测类和方法
// An highlighted block
public class Example {
public void methodToTest() {
List<T> tmp = new List<T>();
int tmpValue = getNum(tmp);
int result = tmpValue + 10;
}
public int getNum(List<T> tmp){
// 省略一些对参数的处理,主要还是想记录Mockito.any()用法
return 1;
}
}
对应UT
@Test
public void testMethodToTest() {
Example spy = Mockito.spy(new Example());
// 对本类中其他带返回值方法进行Mock
doReturn(1).when(spy).getNum(Mockito.any());
// 这里必须用spy出来的对象去发起对待测方法的调用,不能新new一个对象,才能达到行覆盖达到测试用例的效果
spy.methodToTest()
// 有效测试用例需要有assert之类判断结果是否符合预期的断言
org.junit.Assert.assertEquals(1, spy.getNum(Mockito.any()));
}