プロジェクトの編成

ソース コードに対して単体テストを実行する最善の方法は、ソース コードを保持するソリューション内に単体テスト ライブラリ プロジェクトを作成することです。

このような構成を使用する場合は、アプリケーションを 2 つ以上のプロジェクトに分けることをお奨めします。具体的には、アプリケーションを駆動し、インターフェイス要素を格納するメイン プロジェクトと、アプリケーション ロジックを含む 1 つ以上のその他のプロジェクトに分類します。これらのプロジェクトは、リンク ライブラリ プロジェクトである必要があります。

これは、単体テスト ライブラリ プロジェクトと連動できるリンク ライブラリ プロジェクトです。複数の単体テスト ライブラリ プロジェクトを 1 つのリンク ライブラリ プロジェクトと連動させることができますが、1 つの単体テスト ライブラリ プロジェクトを 1 つのリンク ライブラリ プロジェクトにリンクすることをお奨めします。1 つの単体テスト ライブラリ プロジェクトで複数のリンク ライブラリ プロジェクトをテストできますが、複雑になることがあるため、すべてのプロジェクトで 1 つの共通の場所を指すように出力する必要があります。

単体テスト ライブラリ プロジェクトをリンク ライブラリ プロジェクトにリンクするには、次が必要です。
  • リンク ライブラリ プロジェクト内にあるテスト対象のコードにリンクするプロシージャ ポインターが各テスト ケースに含まれている。
  • 単体テスト ライブラリ プロジェクトおよびテスト対象のリンク ライブラリ プロジェクトが同じ出力ディレクトリを共有している。

次に示す AirportDemo ソリューションの例では、AirportConsole プロジェクト (コンソール アプリケーション プロジェクト タイプ) を使用してアプリケーションを起動および駆動しており、インターフェイスのコーディングが含まれています。次に、このプロジェクトは、計算、条件テストなどを実行するために AirportLib プロジェクト (リンク ライブラリ プロジェクト タイプ) を呼び出して、全体として完全なアプリケーションを提供します。アプリケーション ロジックの単体テストを行うために、個別の単体テスト ライブラリ プロジェクト (TestAirportLib) は、リンク ライブラリ プロジェクト (AirportLib) を呼び出して、コードが適切に動作していることを確認します。また、単体テスト ライブラリ プロジェクトをこのソリューションに追加し、同じリンク ライブラリ プロジェクトを呼び出すこともできます。

単体テスト ライブラリ プロジェクトは、自己完結型にすることもできます。この場合、テストするロジックがテスト ケースと同じプロジェクトに存在することになります。ただし、上記のモデルでは、最新のソースでテストを行うようにし、必要な重複コードの量を減らしています。