次のシナリオがあります。
内容が次のようMyClass
な API を持つクラス:myAPI()
class MyClass {
public void myAPI() {
...
MyOtherClass myOtherObj = new MyOtherClass();
String value = myOtherObj.decodeAndGetName();
...
}
}
ここには、何らかの操作をMyOtherClass
行う API が含まれています。decodeAndGetName()
別のパッケージにあり、そのコードを変更できません。
要件
上記のjunitテストを書く必要がありますmyAPI()
。今、私はどういうわけか のオブジェクトをMyOtherClass
モックし、 の戻り値をモックしたいと思っていますdecodeAndGetName()
。
new MyOtherClass()
フローがこの行に到達するとすぐに、新しいインスタンスが作成され、decodeAndGetName()
APIに移動するため、これを行うことができません。私が必要とdecodeAndGetName()
しているのは、上記のコードでこの呼び出しが発生したときに、フローが進行するのを防ぎ、代わりにモック値を取る方法です。
これを行う方法を教えてください。