1
以下是我的代码设计。我需要指导,如何为它编写测试用例。在java中嘲弄受保护方法的对象
abstract class X
{
public void xyz()
{
A a = getA();
callMe(a);
}
private A getA()
{
//do some stuff
return a;
}
protected void callMe();
}
下面是子类:
class Y extends X
{
@Autowired
MyClass myClass;
protected void callMe(A a)
{
B b = provideB();
C c = b.getC();
c.setValue(myClass.getSomeValue());
}
private B provideB()
{
//every child class has its own way of providing this object
return b;
}
}
现在,我写单元测试用例子类Y,所以我要求测试方法XYZ。我知道我需要嘲笑MyClass对象,因为它是我的外部依赖项。所以我嘲笑它。但我很困惑,如果我嘲笑A,因此后来B和C,或者随后在受保护/私有方法中以某种方式创建它,我应该让它的创建在测试时发生吗? 任何铅将不胜感激。