Ini menjawab mengapa Anda harus melakukan pengujian unit.
3 video di bawah ini mencakup pengujian unit dalam javascript tetapi prinsip-prinsip umum berlaku di sebagian besar bahasa.
Unit Testing: Menit Sekarang Akan Hemat Jam Kemudian - Eric Mann - https://www.youtube.com/watch?v=_UmmaPe8Bzc
JS Unit Testing (sangat bagus) - https://www.youtube.com/watch?v=-IYqgx8JxlU
Menulis JavaScript yang Dapat Diuji - https://www.youtube.com/watch?v=OzjogCFO4Zo
Sekarang saya baru belajar tentang subjek jadi saya mungkin tidak 100% benar dan ada lebih dari itu daripada apa yang saya jelaskan di sini tapi pemahaman dasar saya tentang pengujian unit adalah bahwa Anda menulis beberapa kode pengujian (yang disimpan terpisah dari Anda kode utama) yang memanggil suatu fungsi dalam kode utama Anda dengan input (argumen) yang diperlukan oleh fungsi tersebut dan kemudian memeriksa apakah kode tersebut mengembalikan nilai pengembalian yang valid. Jika tidak mendapatkan kembali nilai yang valid, kerangka pengujian unit yang Anda gunakan untuk menjalankan tes menunjukkan lampu hijau (semua baik) jika nilai tidak valid Anda mendapatkan lampu merah dan Anda kemudian dapat memperbaiki masalah langsung sebelum Anda lepaskan kode baru ke produksi, tanpa pengujian Anda mungkin sebenarnya tidak menangkap kesalahan.
Jadi Anda menulis tes untuk Anda kode saat ini dan membuat kode sehingga lulus tes. Berbulan-bulan kemudian, Anda atau orang lain perlu memodifikasi fungsi dalam kode utama Anda, karena sebelumnya Anda sudah menulis kode pengujian untuk fungsi tersebut, Anda sekarang dapat menjalankannya lagi dan pengujiannya mungkin gagal karena pembuat kode memperkenalkan kesalahan logika pada fungsi tersebut atau mengembalikan sesuatu sepenuhnya. berbeda dari apa fungsi yang seharusnya dikembalikan. Sekali lagi tanpa tes di tempat kesalahan itu mungkin sulit untuk dilacak karena dapat mempengaruhi kode lain juga dan akan luput dari perhatian.
Juga fakta bahwa Anda memiliki program komputer yang menjalankan kode Anda dan mengujinya alih-alih Anda melakukannya secara manual di halaman browser demi halaman menghemat waktu (pengujian unit untuk javascript). Katakanlah Anda memodifikasi fungsi yang digunakan oleh beberapa skrip pada halaman web dan berfungsi dengan baik dan baik untuk tujuan yang baru. Tetapi, katakan juga demi argumen bahwa ada fungsi lain yang Anda miliki di tempat lain dalam kode Anda yang bergantung pada fungsi yang baru dimodifikasi agar dapat berfungsi dengan baik. Fungsi dependen ini sekarang dapat berhenti bekerja karena perubahan yang Anda buat pada fungsi pertama, namun tanpa tes di tempat yang dijalankan secara otomatis oleh komputer Anda, Anda tidak akan melihat bahwa ada masalah dengan fungsi itu sampai benar-benar dieksekusi dan kamu'
Untuk mengulangi, memiliki tes yang dijalankan saat mengembangkan aplikasi Anda akan menangkap masalah seperti ini saat Anda sedang coding. Tidak memiliki tes di tempat Anda harus secara manual melalui seluruh aplikasi Anda dan bahkan kemudian itu bisa sulit untuk menemukan bug, secara naif Anda mengirimkannya ke dalam produksi dan setelah beberapa saat pengguna yang baik mengirimi Anda laporan bug (yang tidak akan sebagus pesan kesalahan Anda dalam kerangka pengujian).
Ini cukup membingungkan ketika Anda pertama kali mendengar subjek dan Anda berpikir, apakah saya belum menguji kode saya? Dan kode yang Anda tulis berfungsi seperti seharusnya, "mengapa saya perlu kerangka kerja lain?" ... Ya Anda sudah menguji kode Anda tetapi komputer lebih baik dalam melakukannya. Anda hanya perlu menulis tes yang cukup baik untuk fungsi / unit kode sekali dan sisanya diurus untuk Anda oleh cpu perkasa alih-alih Anda harus memeriksa secara manual bahwa semua kode Anda masih berfungsi ketika Anda membuat perubahan ke kode Anda.
Selain itu, Anda tidak perlu menguji unit kode Anda jika Anda tidak ingin tetapi itu terbayar karena proyek / basis kode Anda mulai tumbuh lebih besar karena kemungkinan memperkenalkan bug meningkat.