Sparametryzowane testy javascript przy użyciu Jest
Czy kiedykolwiek zdarzyło Ci się pisać różne przypadki testowe, aby przetestować tę samą funkcjonalność, zmieniając tylko zmienne, których używasz w teście?
Testy sparametryzowane służą do ponownego uruchomienia tego samego przypadku testowego, ale w różnych warunkach przy każdym uruchomieniu. Ułatwia to utrzymanie testu i pozwala uniknąć powielania.
Ale jak mogę go używać z Jest?
Jest dostarczane z metodą nazwaną each, która pozwala na ponowne wykonanie testu, używając za każdym razem innych danych.
Tej metody można użyć, przekazując tabelę, która zostanie przekazana do funkcji testowej i wykorzystana wewnątrz ciała testu.
Załóżmy, że masz funkcję dodawania i musisz ją przetestować z różnymi wartościami, aby móc przekazać do tabeli listy wartości, które mają być użyte, oraz oczekiwany wynik przy użyciu tych wartości.
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)
})
W teście sparametryzowanym możesz także użyć wszystkich innych metod żartu, takich jak test.only.eachlub test.skip.each.
Ostatnia uwaga jest taka, że jeśli używasz wersji Jest starszej niż 23.x, musisz zainstalować pakiet npm o nazwie jest-each , który pozwala napisać przypadek testowy w zasadzie w taki sam sposób, jak w nowszej wersji Jest .

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































