我偶然发现了一个测试问题,该问题模拟了超类对受保护方法的调用。
例如:
public class A extends B {
@Override
protected int calculate(int x, int y) {
int result = super.calculate(x, y);
result += 10;
return result;
}
}
那么可以通过任何方式模拟
super.calcluate(x,y)
吗?我已经用间谍尝试过,但是间谍无法调用超级方法,因为它超出了我的范围。 最佳答案
我想像一个模拟框架将允许您模拟protected
成员,但是如果您的模拟框架不允许,您是否考虑过创建该类的存根?
public class AStub extends A {
@Override
protected int calculate(int x, int y) {
// do stub calculation
return calculation;
}
}