Rumah >hujung hadapan web >tutorial js >Menambah Jest Pada Explainer.js
Minggu ini kami sepatutnya menambah ujian pada alat cli kami. Setakat ini perkara yang paling mengecewakan untuk dilakukan.
Saya penyokong besar untuk TDD(Pembangunan Didorong Ujian). Hampir setiap kod bahagian harus diuji. Semasa koperasi saya, lebih daripada separuh masa saya menghabiskan ujian menulis untuk PR saya. Saya percaya pengalaman itu benar-benar membantu saya memahami keperluan ujian. Saya terkejut melihat betapa serupanya rangka kerja ujian dalam JS dan Ruby. Saya menggunakan Jest yang hampir sama dengan RSpec yang saya gunakan semasa koperasi saya. Untuk mengejek permintaan http saya menggunakan Nock agak serupa dengan sesuatu yang dipanggil VCR.
Masalah utama yang saya hadapi ialah saya menggunakan ESM dan bukannya CommonJS. Yang membuat hidup saya lebih sukar. Isu pertama ialah jest.mock tidak berfungsi. Selepas beberapa penyelidikan, saya menyedari cara mengejek adalah berbeza dalam ESM. Malangnya walaupun selepas mengikuti dokumen saya tidak dapat membuatnya berfungsi. Jadi, saya terpaksa buat jest.spyOn. Isu kedua yang saya hadapi ialah sejak execa menjalankan dalam child_process index.test.js walaupun dijalankan ia tidak menjejaskan laporan liputan. Jadi saya terpaksa menggunakan jest.spyOn untuk menulis semula ujian. Saya juga terpaksa memfaktorkan semula index.js supaya ia tidak mengambil bendera yang saya hantar untuk bergurau. Isu lain yang lebih kecil yang saya hadapi ialah, menggunakan nod --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js -c jest.config.mjs dan bukannya jest -c jest.config.mjs sebab saya menggunakan ESM. Saya juga terpaksa menggunakan mock-fs untuk meniru sistem fail untuk menguji FilepathResolver.test.js kerana jest.spyOn mudah tidak mengujinya dengan cukup teliti. Saya terkejut berapa banyak sekatan jalan yang berlaku dengan hanya menggunakan ESM dan ia hanya menggambarkan betapa kucar-kacirnya JS.
Selepas banyak ralat percubaan, saya mendapat liputan yang cukup baik.
Atas ialah kandungan terperinci Menambah Jest Pada Explainer.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!