2011-08-05 18 views
0

単純にするには、最初に、myFunctionは2つのキー( 'foo' => 1、 'bar' => 2)を持つ配列を返し、それぞれの存在をテストしていました。ロジックが変更されたときにユニットテストを更新する正しい方法は何ですか?

その後、ビジネスロジックが変更され、myFunctionは1つのキーarray( 'foo' => 1)のみを返します。

すべきこと: a)単体テストから2番目のキー( 'bar')のテストを削除しますか? b)このキーがmyFunctionの戻り配列に存在しない場合は直接テストしますか?

私は( 'blabla'、 'xman')のような他のキーをテストしていないので、最初の答えはより論理的です。しかし、一方で私は私のロジックがどこでも更新されていることを確認したいと思います。

答えて

1

現在の要件に対してテストする必要があります。 D

いずれにせよ:

あなたの配列のみfooあなたはそれが唯一のfooかを返すかどうかをテスト返す必要がある場合は、あなたのケースでは、リファクタリングが適切に行われていることを含んでいます。 foo以上の値を返した場合、テストは失敗します。キーのリストがある場合は、これらのキーがすべて有効かどうかをテストします。テストで定義されていないキーは設定できません。

+0

したがって、最良の解決策は、結果と期待される配列が等しいかどうかをテストすることです(すべてのkesyは等しい、それ以外のものはありません)。どうも。 – jkulak

0

単位テストとは、1つの機能をアトミックな方法でテストすることを意味します。あなたは、その問題を解決するために、赤、緑、リファクタリングのアプローチを使用することができます。これはTDDのアプローチを説明していますhttp://techno-fear-killer.blogspot.com/