次のシンプルでわかりやすいコードを見てください:
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);
そのようなシナリオでは何が起こるでしょうか?関数はエラーをスローしますか?値を返すのでしょうか?アプリケーションが壊れてしまいますか?
テスト カバレッジは強力なツールですが、究極のソリューションではありません。これは、コードのどの程度がテストされているかを理解するのに役立つ指標ですが、テストがどの程度適切に行われているかを示すものではありません。
テスト範囲は量に関しては役に立ちますが、質に関してはほとんど役に立ちません。適切なテストを作成し、エッジケースを考慮し、無効な入力でコードをテストし、テストが意味のある価値のあるものであることを確認するのはあなた次第です。
これはかなり短い記事だったと認めますが、それでも、良いテストを書くことの重要性を思い出させるものとして役に立てば幸いです。テストカバレッジはツールであり、目標ではないことに注意してください。それを最大限に活用するかどうかはあなた次第です。
チャオ、
マイケル。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3