CppUnit は、自動化されたシステム テストではなく、自動化された単体テスト用のフレームワークです。
システム テストは、その名前が示すとおりです。ユーザーの観点から、すべてのコード モジュールを完全なシステムとして一緒にテストすることがすべてです。自動システム テストとは、テスト ハーネスからシステム全体を実行し、特定のユーザー入力を提供して、動作と出力が期待どおりに機能することをテストすることです。
単体テストとは、コードの観点から可能な限り最小のコード単位をテストし、エントリ条件を提供し、終了条件が適切に満たされていることをアサートすることです。最良の場合、1 つの単体テストで、クラスのパブリック インターフェイスのメソッドを介して 1 つのパスを実行し、データベースやサービスなどの提供が難しいリソースへの外部依存を排除する必要があります。単体テストは、モジュールがすべてのことを想定どおりに正確に実行することをテストするための開発者ツールです。これはテストに対する非常に詳細なアプローチであり、実行可能な観点から考えるようなものではありません。
とはいえ、CppUnit でテストする予定のコードは、実行するためにリンクする必要があります。私たちがしていることは、製品コードを 1 つのプロジェクトに記述し、テスト コードを別のプロジェクトに記述することです。ビルドするときは、最初に製品コード プロジェクトをビルドし、製品の .CPP ファイルを .OBJ ファイルにコンパイルしてから、それらを PROD.DLL または PROD.EXE (プロジェクトが生成する目的に関係なく) にリンクします。次に、テスト プロジェクトをビルドします。 、テスト .CPP ファイルを .OBJ ファイルにコンパイルします。次に、テスト プロジェクトは、テスト用の .OBJ ファイルと直前にコンパイルされた運用用の .OBJ ファイルの両方を TEST.EXE にリンクします。このようにして、テストは、実際の製品コードの作成に使用されたものと同じ .OBJ ファイルにリンクされます。次に、TEST.EXE を実行し、ビルドが完了する前にテストでエラーが発生しないことを確認します。