単体テストを容易にするC++コーディングスタイルのベストプラクティスを探しています。問題は、プライベートデータメンバーのモッククラスを実装しようとすることから来ています。プライベートデータメンバーは、クラス内のいくつかの異なるメソッドでアクセスされます。これまでのところ、私が見つけることができるすべての例は、モッククラスを作成する方法を示していますが、実際のオブジェクトとモックオブジェクトの両方を使用するコードを最適に作成する方法は示していません。
以下の例では、タイプMyOtherClassからモックMockMyOtherClassにmCustomを取得する方法がわかりません。私のアプローチは間違っているのではないかと思うので、質問です。
class MyClass {
MyOtherClass mCustom;
};
[編集]
コンパイラ指令を使用して、新しいコンストラクタを追加しました。
#ifdef UNIT_TESTING
#include "mock.h"
#else
#include "myotherclass.h"
#endif
class MyClass {
MyOtherClass mCustom;
public:
MyClass(MyOtherClass pClass) : mCustom(pClass) {}
};