Lihat kod berikut, ringkas dan mudah:
function sum(a, b) { return a + b; }
Sekarang, mari tulis beberapa ujian untuknya:
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); });
Kami mendapat perlindungan 100%, bukan? Ya, ya, kami tahu, sebenarnya kami boleh katakan kami mendapat liputan 400% kerana semua kod diuji sepenuhnya 4 kali, tetapi adakah kami?
Sebenarnya kami tidak. Kami sedang menguji fungsi dengan set input yang terhad, dan kami tidak mempertimbangkan kes tepi dan kami juga tidak menguji fungsi dengan input yang tidak sah.
Pertimbangkan perkara berikut:
sum(1, '2'); sum(1, null); sum(1, undefined);
Apakah yang akan berlaku dalam senario sedemikian? Adakah fungsi itu akan menimbulkan ralat? Adakah ia akan mengembalikan nilai? Adakah ia akan memecahkan permohonan kami?
Liputan ujian ialah alat yang berkuasa, tetapi ia bukan penyelesaian muktamad. Ini ialah metrik yang boleh membantu anda memahami jumlah kod anda sedang diuji, tetapi ia tidak memberitahu anda sejauh mana ia diuji.
Liputan ujian boleh membantu anda dengan kuantiti, tetapi ia boleh melakukan sedikit dengan kualiti. Terpulang kepada anda untuk menulis ujian yang baik, untuk mempertimbangkan kes tepi, untuk menguji kod anda dengan input yang tidak sah dan untuk memastikan bahawa ujian anda bermakna dan berharga.
Ini adalah artikel yang cukup pendek, saya akui, saya harap ia berguna kepada anda sebagai peringatan tentang kepentingan menulis ujian yang baik. Ingat, liputan ujian adalah alat, bukan matlamat. Terpulang kepada anda untuk memanfaatkannya sepenuhnya.
Ciao,
Michael.
Atas ialah kandungan terperinci Kebenaran tentang liputan ujian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!