既存のC++プロジェクトの単体テストを設定しようとしています。C++で小規模な値のようなクラスを単体テストして模倣する
ここにセットアップがあります: 私はGoogle Testを含むGoogle Mockを選択しました。私は別のプロジェクト(テストと呼ばれる)をVisual Studio Solutionに追加しました。テストするユニットはMainと呼ばれる別のプロジェクトにあります。私がテストしたい各cppファイルをTestsプロジェクトに追加する予定です。 Testsプロジェクトは、Mainのすべてのヘッダーファイルにアクセスできます。
テストプロジェクトに1つのcppファイルを追加してコンパイルしましたが、リンカーエラーが発生します。ほとんどは、CTimeValueと呼ばれるCOleDateTimeから派生したクラスのためです。テスト対象のユニットには、値渡しのCTimeValueパラメータを持つメソッドがあり、いくつかのCTimeValue属性も宣言されています。
私は、UUTを孤立してテストし、すべての依存関係に対してモックと偽物を使用したいと考えています。私はCTimeValueでそれを行う方法がわかりません。これは値として使用され、仮想メソッドは含まれていませんが、依然として非常に複雑で、個別の単体テストが必要です。
CTimeValueは、このような多くのクラスのうちの1つです。どのようにこれらのユーザー定義型を使用するクラスのテストを分離することができますか?
乾杯、フェリックス
これは、答えに感謝しなければなりません。モックはバリュー・セマンティクスでうまく機能していないようです。 – TheFogger