この記事では、テストの概念を紹介し、さまざまな種類のテストを使用してコードを検証する方法について説明します。 .NET CLI や Integrated Development Environment (IDE) など、.NET アプリケーションのテストに使用できるさまざまなツールがあります。
テストの種類
自動テストは、アプリケーション コードが作成者の意図した動作を確実に行うための優れた方法です。 この記事では、単体テスト、統合テスト、ロード テストについて説明します。
単体テスト
単体テストは、"作業単位" とも呼ばれる個々のソフトウェア コンポーネントまたはメソッドを実行するテストです。単体テストでは、開発者のコントロール内のコードのみをテストする必要があります。 インフラストラクチャの問題はテストされません。 インフラストラクチャの問題には、データベース、ファイル システム、ネットワーク リソースとの対話が含まれます。
単体テストの作成の詳細については、「 テスト ツール」を参照してください。
統合テスト
統合テストは、2 つ以上のソフトウェア コンポーネントが一緒に機能する機能 ("統合" とも呼ばれます) を実行するという点で単体テストとは異なります。これらのテストは、テスト対象のシステムの広い範囲で動作しますが、単体テストでは個々のコンポーネントに焦点を当てています。 多くの場合、統合テストにはインフラストラクチャの問題が含まれます。
負荷テスト
ロード テストは、システムが指定された負荷を処理できるかどうかを判断することを目的としています。 たとえば、アプリケーションを使用する同時実行ユーザーの数と、対話を応答性よく処理するアプリの機能などです。 Web アプリケーションのロード テストの詳細については、「ASP.NET Coreロード/ストレス テストを参照してください。
テストに関する考慮事項
テストを記述するための ベスト プラクティス があることに注意してください。 たとえば、 テスト 駆動開発 (TDD) は、確認するコードの前に単体テストを記述する場合です。 TDD は、書籍を書く前にアウトラインを作成するようなものです。 単体テストは、開発者が、よりシンプルで読みやすく、効率的なコードを記述するのに役立ちます。
テスト ツール
.NETでテストを実行する場合、テスト プラットフォームとテスト フレームワークという 2 つのコンポーネントが関係します。
テスト プラットフォーム
テスト プラットフォームは、テストを実行し、IDE や CLI などのツールと通信するエンジンです。
テスト プラットフォームの概要を使用して、VSTest と Microsoft.Testing.Platform の違いを理解し、シナリオに最適なプラットフォームを選択します。
移行ガイダンスについては、「 VSTest から Microsoft.Testing.Platform への移行」を参照してください。
テスト フレームワーク
テスト フレームワークは、テスト プラットフォーム上に構築されています。 テスト作成者として使用できる属性と API のセットを定義します。 通常、テスト アダプターを使用します。テスト アダプターは、テスト フレームワークとテスト プラットフォームの間の通信層として機能します。 一般的なテスト フレームワークは、MSTest、NUnit、TUnit、xUnit.net です。
MSTest
MSTest は、すべての.NET言語の Microsoft テスト フレームワークです。 これは拡張可能であり、.NET CLI、Visual Studio、Visual Studio Code、および Rider と連携します。 VSTest と Microsoft.Testing.Platform の両方がサポートされています。
詳細については、次のリソースを参照してください。
NUnit
NUnit は、すべての.NET言語の単体テスト フレームワークです。 当初、NUnit は JUnit から移植され、現在の運用リリースは多くの新機能と、さまざまな.NET プラットフォームのサポートで書き換えられました。 これは、.NET Foundation のprojectです。 VSTest と Microsoft.Testing.Platform の両方がサポートされています。
詳細については、次のリソースを参照してください。
- NUnit (NUnit ランナー) での Microsoft.Testing.Platform のサポート
- C を使用した単体テスト#
- F を使用した単体テスト#
- Visual Basic を使用した単体テスト
TUnit
TUnit は完全に Microsoft.Testing.Platform 上に構築されており、VSTest をサポートしていません。 詳細については、TUnit のドキュメントを参照してください。
xUnit.net
xUnit.net は、.NET用の無料のオープンソースのコミュニティに重点を置いた単体テスト ツールです。 NUnit v2 の元の発明者は xUnit.net を書きました。 xUnit.net は、アプリ.NET単体テスト用の最新のテクノロジです。 ReSharper、CodeRush、TestDriven.NET でも動作します。 xUnit.net は、.NET Foundation のprojectであり、その行動規範の下で動作します。 VSTest と Microsoft.Testing.Platform の両方をサポートしています
詳細については、次のリソースを参照してください。
- xUnit.net v3Microsoft.Testing.Platform のサポート>
- C を使用した単体テスト#
- F を使用した単体テスト#
- Visual Basic を使った単体テスト
テストを実行する
.NET CLI
IDE
Visual Studio、Visual Studio Code、Rider のいずれを使用している場合でも、機能をテストするためのグラフィカル ユーザー インターフェイスがあります。 IDE には CLI よりも多くの機能があります ( Live Unit Testing など)。 詳細については、「Visual Studio を使用したテストの含め方と除外の仕方」を参照してください。
こちらも参照ください
詳細については、次の記事を参照してください。
- .NET を使用したユニットテストのベストプラクティス
- ASP.NET Core におけるインテグレーションテスト
- 選択的単体テストの実行
- 単体テストにコード カバレッジを使用する
.NET