2011-01-27 10 views
1

まず、私はTDDをしたくありません。私はいくつかのコードを書いて、重要なものの単体テストを書いてみたいです。ユニットテストを始めるには?

私はツールを知っています。私はユニットテストを書く方法を知っています。

私はいくつかのコードを書きました(クラスを離れて)、私はどこから始めるべきか分かりません。私は意味を忘れています。

何をユニットテストで拾い上げるのですか?

クラスごとにユニットテストを追加する必要がありますか?

メソッドのパラメータのすべての変形をシミュレートする必要がありますか?

+0

どの言語でですか?どんな言語でも充実して取り組まなければならないように、実際には問題はありませんが、言語ごとに異なるツールがあります。 –

+0

.NETですが、xUnit.NETまたはNUnitを持っています – user256034

答えて

2

単体テストのアイデアは、コードをテストすることです。私たちはTDDを私の会社で使っています。関数の可能なすべてのオプションについてテストを記述します。あなたの3つの質問に答えてください。

  1. 何をユニットテストで取得するのですか?

    インテリジェンスを含まないコードや関数の単体テストを書くのは無駄です。これは実際にTDDに厳密に従うときに起こる必要があるものです。しかし、関数が何を返すのかが明白で何も間違っていないと確信しているなら、おそらくテストを書く必要はありません。そうするのが良いですが。

  2. クラスごとにユニットテストを追加する必要がありますか?

    これは正確にはどういう意味ですか?質問があなたがクラスをテストする必要がある場合、答えはいいえです。ユニットテストは最小のコードをテストするためのテストです。ほとんどの関数とコンストラクタ。あなたが知りたいのは、あなたが望む結果をあなたの関数が与える場合で、あなたが望む結果を返すか、関数に送るパラメータ値に関係なくうまく引き渡された例外をスローしたい場合です。

  3. 私はシミュレートするべきですか?メソッドのパラメータのすべての可能な変形?

    する必要があります。それは単体テストを書くという考え方全体です。間違っている可能性があるすべてのものを排除するコードをテストしたいとします。パラメータはここで最も重要です。文字列パラメータにhtmlなどが含まれているとどうなりますか?また、必要なパラメータがNULLの場合はどうなりますか?または空の文字列。すべてのオプションは、間違っている可能性のあるものを排除するためにテストする必要があります。

.netフレームワークを使用している場合は、Moqフレームワークを見るのが非常に興味深いです。簡単に言えば、これはフレームワークなので、いくつかの型の偽のオブジェクトを作成することができ、複数の異なるパラメータと戻り値を使用して結果が期待どおりになっているかどうかを調べることができます。 Scott Hanselmans blog postでそれについて読むことができます。

0

メソッドの の可能なバリエーションをすべてシミュレートする必要がありますか?

Pexは、コードカバレッジが最大になるパラメータ化されたテストの入力値を生成することができます。

関連する問題