単体テストとは、大まかに言えば、テスト コードを使用してコードの一部を分離してテストすることです。すぐに思いつく利点は次のとおりです。
- テストの実行が自動化および反復可能になる
- GUI を介したポイント アンド クリック テストよりもはるかに詳細なレベルでテストできます。
私の質問は、ツールに関する現在の「ベスト プラクティス」とは何か、および日常のコーディングの一部としてユニット テストをいつ、どこで使用するかということです。
言語にとらわれず、すべてのベースをカバーするようにしましょう。
単体テストとは、大まかに言えば、テスト コードを使用してコードの一部を分離してテストすることです。すぐに思いつく利点は次のとおりです。
- テストの実行が自動化および反復可能になる
- GUI を介したポイント アンド クリック テストよりもはるかに詳細なレベルでテストできます。
私の質問は、ツールに関する現在の「ベスト プラクティス」とは何か、および日常のコーディングの一部としてユニット テストをいつ、どこで使用するかということです。
言語にとらわれず、すべてのベースをカバーするようにしましょう。
さて、単体テストを十分に行っていない人からのベストプラクティスをいくつか紹介します...咳。
TDD on Three Index CardsとThree Index Cards を参照して、テスト駆動開発の本質を簡単に思い出すことをお勧めします。
カード#1。ボブおじさんの三原則
カード #2: 最初の原則
カード #3: TDD のコア
いわゆるxUnitフレームワークが広く使用されています。もともと Smalltalk 用に SUnit として開発され、Java 用の JUnit に進化し、現在では .Net 用の NUnit など、他の多くの実装が含まれています。これはほとんどデファクト スタンダードです。ユニット テストを使用していると言えば、他の開発者の大半は、xUnit などを意味していると想定します。
「ベスト プラクティス」の優れたリソースはGoogle Testing Blogです。たとえば、Writing Testable Codeに関する最近の投稿は素晴らしいリソースです。具体的には、「トイレでのテスト」シリーズの毎週の投稿は、キューブやトイレの周りに投稿するのに最適であるため、いつでもテストについて考えることができます.
xUnit ファミリーは、単体テストの主力です。それらは、Netbeans、Eclipse、および他の多くの IDE などに統合されています。これらは、単体テストに対するシンプルで構造化されたソリューションを提供します。
テストを書くときに私が常に心がけていることの 1 つは、外部コードの使用を最小限に抑えることです。つまり、テストのセットアップとティアダウンのコードを可能な限り最小限に抑え、他のモジュール/コード ブロックをできるだけ使用しないようにしています。適切に記述されたモジュラー コードは、そのセットアップとティアダウンにあまり多くの外部コードを必要とすべきではありません。
NUnitは、どの.NET言語にも適したツールです。
単体テストは、さまざまな方法で使用できます。
リファクタリングのサポートを忘れないでください。.NET上のReSharperは、欠落しているコードの自動リファクタリングと迅速な修正を提供します。つまり、存在しないものへの呼び出しを作成すると、ReSharperは欠落している部分を作成するかどうかを尋ねます。