Tes javascript yang diparametrikan menggunakan Jest

Jan 07 2023
Pernahkah Anda menemukan diri Anda menulis kasus uji yang berbeda untuk menguji fungsionalitas yang sama untuk hanya memvariasikan variabel yang Anda gunakan dalam pengujian? Tes parametri digunakan untuk menjalankan ulang kasus uji yang sama, tetapi dalam kondisi yang berbeda di setiap proses. Ini membuat pengujian lebih mudah untuk dipelihara dan menghindari duplikasi.

Pernahkah Anda menemukan diri Anda menulis kasus uji yang berbeda untuk menguji fungsionalitas yang sama untuk hanya memvariasikan variabel yang Anda gunakan dalam pengujian?

Tes parametri digunakan untuk menjalankan ulang kasus uji yang sama, tetapi dalam kondisi yang berbeda di setiap proses. Ini membuat pengujian lebih mudah untuk dipelihara dan menghindari duplikasi.

Tapi bagaimana cara menggunakannya dengan Jest?

Jest global hadir dengan metode bernama eachyang memungkinkan pengujian Anda dieksekusi ulang, menggunakan data yang berbeda setiap saat.

Metode ini dapat digunakan dengan meneruskan tabel, yang akan diteruskan ke fungsi pengujian Anda dan digunakan di dalam isi pengujian Anda.

Misalkan Anda memiliki fungsi tambah dan Anda perlu mengujinya dengan nilai yang berbeda, sehingga Anda dapat memasukkan daftar tabel nilai yang akan digunakan dan hasil yang diharapkan saat menggunakan nilai tersebut.

test.each([
  [[1, 2], 3],
  [[50, 51], 101],
  [[10, 25], 35],
])('adds %i and expects %i', (numbers, result) => {
  const [firstNumber, secondNumber] = numbers
  expect(add(firstNumber, secondNumber)).toEqual(result)
})

test.each([
  {first: 1, second: 2, result: 3},
  {first: 50, second: 51, result: 101},
  {first: 10, second: 25, result: 35},
])('adds $first and $second and expects $result', ({ first, second, result }) => {
  expect(add(firstNumber, secondNumber)).toEqual(result)
})

Anda juga dapat menggunakan semua metode jest lainnya dengan uji parametrized Anda, seperti test.only.eachatau test.skip.each.

Catatan terakhir adalah jika Anda menggunakan versi Jest yang lebih lama dari 23.x, Anda harus menginstal paket npm bernama jest-each yang memungkinkan Anda menulis kasus uji pada dasarnya dengan cara yang sama dengan versi Jest yang lebih baru .