質問

単体テストとは、大まかに言うと、コードの一部をテスト コードとは切り離してテストすることです。すぐに思い浮かぶ利点は次のとおりです。

  • テストの実行が自動化可能で反復可能になる
  • GUI を使用したポイント アンド クリック テストよりもはるかに詳細なレベルでテストできます。

リトミス

私の質問は、ツールに関する現在の「ベスト プラクティス」と、日常のコーディングの一部として単体テストをいつ、どこで使用するかということです。

ある程度言語に依存せず、すべての基本をカバーできるようにしてみましょう。

役に立ちましたか?

解決

さて、単体テストを必要以上に行わない人からのベスト プラクティスをいくつか紹介します...咳。

  1. テストは必ずテストしてください 1つ物と一つだけ。
  2. 単体テストを書きながら進めていきます。できれば 前に テスト対象のコードを作成します。
  3. GUI の単体テストは行わないでください。
  4. 懸念事項を分離する.
  5. テストの依存関係を最小限に抑えます。
  6. 振る舞いを嘲笑する モック.

他のヒント

見てみるのもいいかもしれません 3 枚のインデックス カードの TDD そして テスト駆動開発の本質を簡単に覚えられる3つのインデックスカード:

カードその1。ボブおじさんの三原則

  • 不合格のテストに合格する場合を除き、実稼働コードを作成しないでください。
  • 失敗を実証するのに十分なテストのみを記述します。
  • テストに合格するのに十分な実稼働コードのみを作成してください。

カード #2:第一原則

  • 速い:毎秒数百、数千という、気が遠くなるような速さです。
  • 孤立:テストでは障害を明確に切り分けます。
  • 再現可能:繰り返し実行でき、毎回同じように成功または失敗します。
  • 自己検証:テストには明確に合否が判定されます。
  • タイムリーな:わずかなコード変更を加えて段階的に作成されます。

カード #3:TDDの中核

  • 赤:テストが失敗する
  • 緑:テストに合格しました
  • リファクタリング:クリーンなコードとテスト

いわゆる xユニット というフレームワークが広く使われています。元々は Smalltalk 用に SUnit として開発されましたが、Java 用の JUnit に進化し、現在では .Net 用の NUnit など、他の多くの実装があります。これはほぼ事実上の標準です。単体テストを使用していると言うと、他の開発者の大多数は、それが xUnit などのことを意味していると考えるでしょう。

「ベスト プラクティス」に関する優れたリソースは、 Google テスト ブログ, 、たとえば、最近の投稿 テスト可能なコードの作成 素晴らしいリソースです。特に、「トイレでのテスト」シリーズの毎週の投稿は、キューブやトイレの周りに投稿するのに最適なので、いつでもテストのことを考えることができます。

xUnit ファミリは単体テストの中心です。これらは Netbeans、Eclipse、その他多くの IDE に統合されています。これらは、単体テストに対するシンプルで構造化されたソリューションを提供します。

テストを作成するときに私が常に心がけていることの 1 つは、外部コードの使用を最小限に抑えることです。つまり、次のことを意味します。テストのセットアップと分解のコードをできる限り最小限に抑え、他のモジュールやコード ブロックの使用をできるだけ避けるようにしています。適切に記述されたモジュラー コードは、セットアップと分解の際にあまり多くの外部コードを必要としないはずです。

NUnit は、どの .NET 言語でも優れたツールです。

単体テストはさまざまな方法で使用できます。

  1. テストロジック
  2. コード単位の分離を増やします。コードの関数またはセクションを完全にテストできない場合は、それを構成する部分が相互に依存しすぎていることになります。
  3. 開発を推進し、テストを書く人もいる 前に 彼らはテストされるコードを書きます。そのため、コードに何をさせたいのかを考える必要があります。 する, そして、いつそれを達成したかについての明確なガイドラインを示します。

リファクタリングのサポートを忘れないでください。.NET 上の ReSharper は、自動リファクタリングと不足しているコードの迅速な修正を提供します。つまり、存在しないものへの呼び出しを作成すると、ReSharper は不足している部分を作成するかどうかを尋ねます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top