現在、静的関数のみを持つ別のクラスを使用するクラスに取り組んでいます。
クラスをテストするまで、すべてがうまくいきました。
問題の簡単なコード例を次に示します。
class A {
static String getSometing() {
return String("Something: ") + heavyCalculation().asString();
}
}
class B {
B() {}
~B() {}
String runSomething(const String& name) {
if(name.equals("something")) {
return A::getSomething();
} else {
return "Invalid name!";
}
}
}
クラス A が正しく動作している (そして単体テストでテストされている) と仮定して、クラス B のrunSomething関数を確認したいと思います。
私の最初のオプションは、内部クラス (このサンプルでは - クラス A) のモックを作成することですが、その場合、静的関数しかないため、A から継承するものは何もありません。
2 つ目のオプションは、A クラスの呼び出しを B 内のプライベート関数にカプセル化して、戻り値を制御できるようにすることです (ただし、このオプションを選択すると、処理が少し複雑になります)。
私の質問は次のとおりです。静的クラス/関数に依存する C++ クラスをテストするための、現在のオプションよりも優れた方法はありますか?
前もって感謝します、
タル。