web-dev-qa-db-ja.com

TDDを使い始めたい。初心者のためのヒント?

私はどのプロジェクトでも自動化されたテストメカニズムを使用したことがなく、多くのことが足りないと感じています。私は自分自身を改善したいので、私はこのように無視してきたいくつかの問題に取り組み始め、SVNで立ち往生する代わりにGitを試す必要があります。

TDDを学ぶ良い方法は何ですか?おそらく、Eclipseを使用してJavaでプログラミングすることになります。 JUnitについて聞いたことがありますが、他に考慮すべきことがあるかどうかわかりません。

27
Mike42

coding katas に取り組むことから始めることができます。アルゴリズム(10進数からローマ数字への変換、ボウリングゲームのスコアリング、コンウェイの人生ゲームなど)を選択し、TDDを使用して解決策を試してください。

ソリューションの構造は、非常にシンプル(実際の製品コードよりもはるかにシンプル)になる可能性があります。1つはテストフィクスチャ用のクラスで、もう1つはテスト対象のアルゴリズムを含むクラスです。また、テスト中のクラスに依存関係がないこともプラスです。この設定の単純さを使用して、red-green-refactorループのハングをすばやく取得できます。

TDDカタにどのツールを使用するかは、原則に固執する限り、それほど重要ではありません。ただし、Eclipse用のJUnitプラグインは非常に使いやすいので、優れた選択肢です。

15
azheglov

[〜#〜] aaa [〜#〜] に慣れ、それについて読んで、テスト駆動開発に伴う問題について読んでください(- テスト容易性の設計 対高コスト設計が問題にならないようにするためのツール)。学習 Dependency Injection テストのための外部依存関係の削除がより簡単になるようにします。

これは私が読んでいる間に取ったメモの良い概要です ユニットテストの芸術

http://imaginarydevelopment.blogspot.com/2010/01/unit-testing-reference.html

8
Maslow

実際には、テストハーネス(NUnitなど)を入手して、いくつかの文献を読んでから、手を汚すことに代わるものはありません。

ジェームズT.カークがかつて言ったように、「私たちは行うことによって学ぶ」。

6
Chris Holmes

私はこの本を強くお勧めします: テストによって導かれる成長するオブジェクト指向ソフトウェア

それは本を通して実行された実際の例があり、いつテストが作成されるべきか、それらが含まれるべきもの、そしてそれらがどのように構築されリファクタリングされるべきかについての非常に一貫した見解を提供します。

4
flamingpenguin