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,或者隨後在受保護/私有方法中以某種方式創建它,我應該讓它的創建在測試時發生嗎? 任何鉛將不勝感激。