回答:
個人的には、JUnitのエッセイを読んで、「コードを書く前にテストを書く」ということを強調すれば、始めるのに十分だとわかりました。
この技術を学習する上で最も重要な部分は、コードを書くことについて考える最も基本的な方法のいくつかを変更する必要があるため、大量のテストベースのコードを書くことです。次のようなもの:
小規模に始めるのに最適な場所は、ユーティリティルーチンを使用することです。次に必要な場合は、最初にテストを使用して設計し、すべての公式ユースケース(null値が渡された場合など)をカバーする多くのテストを作成し、すべてのユースケースが実装されたら使用できるようにする必要がありますコード内で直接、期待どおりに動作することを確信してください。
また、さまざまな状況でコードがどのように動作するかを正確に示す非常に簡潔なコードがたくさんあるため、優れたテストはドキュメントとして追加の作業を行うことができることも私の経験です(正しいバーであることが簡単に証明できます)。慎重なコメントを使用しても、それ以上の効果は得られません。
Javaの場合、jUnitバージョン4は本当に素晴らしいです。
私の意見では、TDDはテストを書くことよりもコードをテスト可能にすることの方が重要です。
コーディングする前にテストを作成することはできますが、テストを作成する全体的な理由は、コードを作成できるようにするためです。これにより、テストが困難なコードを作成するのを止めることはできません。
これを見て、私の意味を理解してください: バグの統一理論
コンセプトに興味があり、さらに詳しく知りたい場合は、コメントしてください。Googleのトピックに関する記録されたプレゼンテーションの方向性を示します。
更新:
MiškoHevery Presenting(by GoogleTechTalks)NYCのGoogleで、GoogleのEngineering Productivity Group がスポンサー
すでに言及した本のいくつかとは別に、私はテストによって導かれるオブジェクト指向ソフトウェアの成長をお勧めできます。まだ読み終えていませんが、単純なコード例だけでなく、実物そっくりのTDDプロジェクト全体のストーリーなど、読む価値のあるものです。
私は2冊の本を読みました。
テスト駆動開発: Kent Beckと
Paul Hamilによる単体テストフレームワーク
Beckの本は高く評価されていますが、「Unit Test Frameworks」を読むまでユニットテストを始めませんでした。私はいくつかのTDDを行いますが、(可能な場合)維持しなければならない古いコードにテストを追加します。
編集:また、一度ハンドルを取得したら、すぐに現在のプロジェクトで使用することをお勧めします。私にとってそれは本当の学習が起こったときであり、「ユニットテストフレームワーク」本はこの目的のためのより良い参考書だと思います。(C#でnunitを使用していました)。
主にTDDについてではありませんが(テストやテスタビリティのために設計しますが)、The Art of Unit Testingは良いテストの書き方を教えてくれるのでお勧めの本です。
より具体的には、信頼でき、保守可能で、読みやすいテストを作成する方法を教えます。これは、おそらく単体テストと分離フレームワークの基本以外の、本の最も重要なセクションだと思います。単体テストが問題になるか、開発者の仕事に摩擦が加わると、単体テストの成功または利益が制限されることは明らかです。テストを作成するために時間と労力を費やした場合、その投資から最大限の利益を得ることができるはずです。