接上篇:https://developer.aliyun.com/article/1228066?spm=a2c6h.13148508.setting.16.4a864f0e4FO91p
三、 spy语句
如果一个对象,我们只希望模拟它的部分方法,而希望其它方法跟原来一样,可以使用“PowerMockito.spy”方法代替“PowerMockito.mock”方法。于是,通过when语句设置过的方法,调用的是模拟方法;而没有通过when语句设置的方法,调用的是原有方法。
1. spy类
声明
• PowerMockito.spy(Class clazz);
用途
• 用于模拟类的部分方法。
案例
2. spy对象
声明
• T PowerMockito.spy(T object);
用途
• 用于模拟对象的部分方法。
案例
四、 when语句
1. when().thenReturn()模式
声明
• PowerMockito.when(mockObject.someMethod(someArgs)).thenReturn(expectedValue);
• PowerMockito.when(mockObject.someMethod(someArgs)).thenThrow(expectedThrowable);
• PowerMockito.when(mockObject.someMethod(someArgs)).thenAnswer(expectedAnswer);
• PowerMockito.when(mockObject.someMethod(someArgs)).thenCallRealMethod();
用途
• 用于模拟对象方法,先执行原始方法,再返回期望的值、异常、应答,或调用真实的方法。
返回期望值:
返回期望异常:
返回期望应答:
调用真实方法:
接下篇:https://developer.aliyun.com/article/1228064?groupCode=java





