Uji Apl JavaScript Anda Dengan Jest

WBOY
Lepaskan: 2024-08-13 06:37:28
asal
776 orang telah melayarinya

Test Your JavaScript App With Jest

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

Seterusnya, tambahkan skrip ujian pada pakej anda.json:

"scripts": {
  "test": "jest"
}
Salin selepas log masuk

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

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

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

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

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

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

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan