既存のC++プロジェクトの単体テストを設定しようとしています。
設定は次のとおりです。GoogleTestを含むGoogleMockを選択しました。Visual Studioソリューションに別のプロジェクト(テストと呼ばれる)を追加しました。テストするユニットは、メインと呼ばれる別のプロジェクトにあります。計画は、テストしたい各cppファイルをTestsプロジェクトに追加することです。Testsプロジェクトは、Mainからすべてのヘッダーファイルにアクセスできます。
Testsプロジェクトに1つのcppファイルを追加しましたが、コンパイルされますが、リンカーエラーが発生します。ほとんどは、CTimeValueと呼ばれるCOleDateTimeから派生したクラスが原因です。テスト対象のユニットには、値渡しのCTimeValueパラメーターを持つメソッドがあり、いくつかのCTimeValue属性も宣言しています。
UUTを個別にテストし、すべての依存関係にモックとフェイクを使用したいと思います。CTimeValueでそれを行う方法がわかりません。これは値として使用され、仮想メソッドは含まれていませんが、それでも非常に複雑であり、個別の単体テストに値します。
CTimeValueは、プロジェクトでこのような多くのクラスの1つにすぎません。これらのユーザー定義型を使用するクラスのテストを分離するにはどうすればよいですか?
乾杯、フェリックス