こんにちは: 通常、モック (Java エージェント) を使用して、クラス内のオブジェクトを置き換えます。
例えば:
public class ClassA{
public ClassB realObjectB;
public ClassC realObjectC;
public void Method1(){
realObjectC = new ClassC();
realObjectB = new ClassB(realObjectC);
}
...
...
}
public class ClassB {
public void ParticularInhereitedMethod(){
many dependency objects involved...
}
}
もちろん、ClassB と ClassC には、接続プールなど、他にも多くの依存関係があります。
テストを行う場合、次のことを行ってもよろしいですか:
public class Mock extends ClassB{
@override
public class ParticularInhereitedMethod(){
Make clean codes, no dependency.
}
}
テスト アプリケーションでは:
public class MainClass{
public static void main(String[] args){
ClassA a = new ClassA();
ClassM m = new Mock();
a.realObjectB = m;
manipulate m;
}
}
上記の方法は実際のテストで機能しますか? Java エージェント (バイトコード置換) を使用する必要があるのはなぜですか?