Kebenaran tentang liputan ujian

Mary-Kate Olsen
Lepaskan: 2024-09-28 16:23:01
asal
377 orang telah melayarinya

The truth about test coverage

Kebenaran yang berkuasa.

Lihat kod berikut, ringkas dan mudah:

function sum(a, b) {
  return a + b;
}
Salin selepas log masuk

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);
});
Salin selepas log masuk

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);
Salin selepas log masuk

Apakah yang akan berlaku dalam senario sedemikian? Adakah fungsi itu akan menimbulkan ralat? Adakah ia akan mengembalikan nilai? Adakah ia akan memecahkan permohonan kami?

Berhati-hati dengan perangkap liputan ujian.

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.

Kesimpulan

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!