Pengujian ialah bahagian penting dalam pembangunan perisian yang memastikan aplikasi anda berkelakuan seperti yang diharapkan. Salah satu rangka kerja ujian paling popular dalam ekosistem JavaScript ialah Jest. Dibangunkan oleh Facebook, Jest terkenal dengan kesederhanaan dan kemudahan penggunaannya, menjadikannya pilihan terbaik untuk pembangun pemula dan berpengalaman.
Bermula dengan Jest
Sebelum kita menyelami contoh, mari sediakan Jest dalam projek anda. Jika anda belum melakukannya, anda boleh memasangnya menggunakan npm:
npm install --save-dev jest
Seterusnya, tambahkan skrip ujian pada pakej anda.json:
"scripts": { "test": "jest" }
Kini anda sudah bersedia untuk menulis beberapa ujian!
Mari buat fungsi mudah untuk diuji. Cipta fail bernama math.js:
// math.js function add(a, b) { return a + b; } module.exports = add;
Sekarang, mari tulis ujian untuk fungsi ini. Cipta fail bernama math.test.js:
// math.test.js const add = require('./math'); test('adds 1 + 2 to equal 3', () => { expect(add(1, 2)).toBe(3); });
Dalam ujian ini, kami menggunakan fungsi ujian untuk menentukan kes ujian. Fungsi jangka digunakan untuk menegaskan bahawa hasil tambah(1, 2) adalah sama dengan 3.
Menjalankan Ujian
Anda boleh menjalankan ujian anda dengan melaksanakan arahan berikut dalam terminal anda:
npm test
Anda sepatutnya melihat output yang menunjukkan bahawa ujian anda telah lulus.
Menguji Kod Asynchronous
Jest juga menyokong ujian kod tak segerak. Mari ubah suai fail math.js kami untuk memasukkan fungsi tak segerak:
// math.js function fetchData() { return new Promise((resolve) => { setTimeout(() => { resolve('peanut butter'); }, 1000); }); } module.exports = { add, fetchData };
Sekarang, mari tulis ujian untuk fetchData:
// math.test.js const { add, fetchData } = require('./math'); test('adds 1 + 2 to equal 3', () => { expect(add(1, 2)).toBe(3); }); test('fetches data', async () => { const data = await fetchData(); expect(data).toBe('peanut butter'); });
Dalam ujian ini, kami menandakan fungsi ujian sebagai tidak segerak dan gunakan menunggu untuk menunggu janji diselesaikan.
Fungsi Mengejek
Jest menyediakan keupayaan mengejek yang kuat. Katakan anda mempunyai fungsi yang membuat panggilan API. Anda boleh mengejek fungsi ini untuk mengawal kelakuannya semasa ujian.
Berikut ialah contoh:
// api.js const axios = require('axios'); async function getUser() { const response = await axios.get('https://api.example.com/user'); return response.data; } module.exports = getUser;
Anda boleh mengejek aksios dalam ujian anda:
// api.test.js const axios = require('axios'); const getUser = require('./api'); jest.mock('axios'); test('fetches user data', async () => { const user = { name: 'John Doe' }; axios.get.mockResolvedValue({ data: user }); const result = await getUser(); expect(result).toEqual(user); });
Dalam ujian ini, kami mengejek kaedah axios.get untuk mengembalikan respons yang dipratentukan, membolehkan kami menguji getUser tanpa membuat panggilan API sebenar.
Jest ialah rangka kerja ujian berkuasa yang memudahkan untuk menulis dan menjalankan ujian untuk aplikasi JavaScript anda. Dengan sintaksnya yang ringkas, sokongan untuk kod tak segerak dan keupayaan mengejek terbina dalam, Jest boleh membantu anda memastikan kod anda boleh dipercayai dan boleh diselenggara. Mula menyepadukan Jest ke dalam projek anda hari ini dan nikmati faedah ujian automatik.
Atas ialah kandungan terperinci Uji Apl JavaScript Anda Dengan Jest. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!