クラスAの関数func1をテストしています。テスト対象のクラスから呼び出される単体テストのメソッドをオーバーライドする方法
Func1はクラスBのローカル変数を持ち、Bの関数func2を呼び出します。コードは次のようになります。
public Class A
{
public func1()
{
B object = new B();
int x = object.func2(something);
}
}
単体テストでfunc1をテストしているときに、func2が呼び出されないようにします。
だから私はテストでこのような何かをしようとしています:
B textObject = new B()
{
@override
int func2(something)
{
return 5;
}
}
しかし、それはまだこれを処理する方法を提案してくださいクラスBの関数func2を呼び出しています。
は、あなたが引数として 'B'を取るために、依存性注入、リファクタリング 'A'を使用することができます関数内に 'new'を作成するのではなく?このような抽象的な例では、分かりやすいアドバイスをするのは難しいです。 – jonrsharpe
私はAのコンストラクタでBを入力としてfunc1の入力として受け取ることはできません。クラスAのfunc1をオーバーライドしているためです。 BをAのクラス変数として作成できますが、それは役に立たないようですどちらか。この場合、あなたは何をお勧めしますか? –
問題の内容がわかりません。再び、この例はあまりにも抽象的です。 DIについていくつかの調査を行います。 – jonrsharpe