次のシンプルでわかりやすいコードを見てください:
function sum(a, b) { return a + b; }
それでは、いくつかのテストを書いてみましょう:
test('sum', () => { expect(sum(1, 2)).toBe(3); expect(sum(2, 3)).toBe(5); expect(sum(3, 4)).toBe(7); expect(sum(4, 5)).toBe(9); });
カバー率は 100% ですよね?実際、すべてのコードが 4 回完全にテストされているため、400% のカバレッジを達成していると言えますが、本当にそうなるでしょうか?
真実は、そうではありません。限られた入力セットを使用して関数をテストしていますが、エッジケースは考慮しておらず、無効な入力を使用して関数をテストしていません。
次の点を考慮してください:
sum(1, '2'); sum(1, null); sum(1, undefined);
そのようなシナリオでは何が起こるでしょうか?関数はエラーをスローしますか?値を返すのでしょうか?アプリケーションが壊れてしまいますか?
テスト カバレッジは強力なツールですが、究極の解決策ではありません。これは、コードのどの程度がテストされているかを理解するのに役立つ指標ですが、テストがどの程度適切に行われているかを示すものではありません。
テスト範囲は量に関しては役に立ちますが、質に関してはほとんど役に立ちません。適切なテストを作成し、エッジケースを考慮し、無効な入力でコードをテストし、テストが意味のある価値のあるものであることを確認するのはあなた次第です。
これはかなり短い記事だったことは認めますが、それでも、良いテストを書くことの重要性を思い出させるものとして役に立てば幸いです。テストカバレッジはツールであり、目標ではないことに注意してください。それを最大限に活用するかどうかはあなた次第です。
チャオ、
マイケル。
以上がテスト範囲に関する真実の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。