java任务poer_java-Powermock-模拟超级方法调用
這是我的代碼-
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.core.classloader.annotations.*;
import static org.powermock.api.support.SuppressCode.*;
class BaseService {
public int save() {
validate();
return 2;
}
public static int save2() {
return 5;
}
public void validate() {
System.out.println("base service save executing...");
}
}
class ChildService extends BaseService {
public int save() {
System.out.println("child service save executing...");
int x = super.save2();
int y = super.save();
System.out.println("super.save returned " + y);
load();
return 1 + x;
}
public void load() {
System.out.println("child service load executing...");
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest(BaseService.class)
public class PreventSuperInvocation {
@Test
public void testSave() throws Exception {
org.powermock.api.support.Stubber.stubMethod(BaseService.class,
"save2", 4);
suppressMethod(BaseService.class, "save");
ChildService childService = new ChildService();
System.out.println(childService.save());
}
}
我想在ChildService類中模擬super.save().但是我找不到做到這一點的方法. preventMethod()僅禁止并返回默認值(上述情況下為0).諸如MemberModifier,Stubber,MethodProxy之類的東西僅適用于靜態方法.
有沒有辦法在Powermock中做到這一點?
我正在使用Powermock 1.5和Mockito 1.9.5.
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java任务poer_java-Powermock-模拟超级方法调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【零基础学习iOS开发】【02-C语言】
- 下一篇: attribute 扩展