次の一連のイベントについて考えてみます。
A()
作業単位を実行する関数を作成します- 関数A()のテストを記述して、バグが存在しないことを確認します
B()
関数を使った関数を書くA()
- 関数のテスト
B()
を作成して、バグが存在しないことを確認します
。4.1関数B()
カバー関数A()
のテスト結果として、同じ機能のいくつかをカバーする少なくとも2つのテストがあります。
質問1:最初に関数のテストを書くことは価値がありましたA()
か?
- あなたはたくさんのコードを書きます
- プログラムの機能をエンドツーエンドでテストする巨大な回帰テストを作成します
。6.1この単一の回帰テストは、すでに作成されたテストの大部分を効果的に繰り返します。
質問2:これらの手順に従うことにより、コードには同じことを複数回カバーする多くのテストが含まれます。これを回避するテクニックはありますか?
推定:
この質問の目的のために、Bが2つのことを行い、そのうちの1つが全体としてAであると仮定してください。
void performLifeChoice() { // B()
if (timeIsRight) {
askForPromotion(); // A()
} else {
goBackToSchool();
}
}