Jest: ожидаемый и полученный аргумент (массив) совпадают, но тест не пройден - PullRequest
0 голосов
/ 01 мая 2018

Я тестирую функцию, которая принимает два аргумента: строку и массив. Переданный массив должен точно соответствовать ожидаемому массиву.

Я пробовал:

expect(context.commit).toHaveBeenCalledWith('loadMunicipalityIDArray', muniIDArray)

и

expect(context.commit).toHaveBeenCalledWith('loadMunicipalityIDArray', expect.arrayContaining(
    muniIDArray
))

но оба дают мне ошибки соответственно:

Expected mock function to have been called with:
  [501, 556, 599, 606, 622, 1783, 1842] as argument 2, but it was called with [501, 556, 599, 606, 622, 1783, 1842].

и

Expected mock function to have been called with:
  ArrayContaining [501, 556, 599, 606, 622, 1783, 1842] as argument 2, but it was called with [501, 556, 599, 606, 622, 1783, 1842].

Почему тесты не проходят?

1 Ответ

0 голосов
/ 01 мая 2018

Хорошо, я идиот. Название подразумевало, что функция ожидала массив, но в реальном коде ей передавали набор. Честно говоря, Джест мог бы быть немного более информативным здесь, и я не написал оригинальную функцию, поэтому мне нравится думать, что вина не совсем моя. Так или иначе, это решило это:

let idSet = new Set(muniIDArray)
expect(context.commit).toHaveBeenCalledWith('loadMunicipalityIDArray', idSet)

и теперь я также изменю название функции.

...