Unten ist mein Code-Design. Ich brauche Anleitung, wie man den Testfall dafür schreibt.Mocking Objekte von geschützten Methoden in Java
abstract class X
{
public void xyz()
{
A a = getA();
callMe(a);
}
private A getA()
{
//do some stuff
return a;
}
protected void callMe();
}
unten ist das Kind Klasse:
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;
}
}
Nun, ich schreibe Einheit Testfälle für Kindklasse Y, also bin ich xyz Verfahren zum Testen aufrufen. Ich weiß, dass ich MyClass Objekt verspotten muss, da es meine externe Abhängigkeit ist. Also habe ich es verspottet. Aber ich bin verwirrt, dass sollte ich A und damit auch B und C nachahmen oder da sie irgendwie in geschützten/privaten Methoden erstellt werden, also, sollte ich ihre Erstellung während des Testens zulassen? Jede Leitung wird geschätzt.