Как проверить параметры заглушки на соответствие реальной функции - PullRequest
0 голосов
/ 04 марта 2020

Я выполняю модульное тестирование с Chai & sinon и хочу, чтобы мой тест не прошел при изменении полученных параметров функции.

Давайте предположим, что у нас есть:

function a(param1){
   ... db and other sync functions called 
};

С кучей из написанных тестов, озвучивание «функции а» и разрешение данных:

it('Should assert other specific logic', test(async function() {
    stub(a).resolves(someValue);
    await a(val1);
}));

В какой-то момент моя «функция а» модифицируется для получения дополнительного параметра.

function a(param1, param2){
   ... db and other sync functions called 
};

Я хочу, чтобы все тесты, которые заглушают эту функцию, не выполнялись , поскольку они вызываются с 1 параметром, а фактическая функция получает 2; (без необходимости Утверждая количество параметров, полученных заглушкой, я добиваюсь этого, вызывая .length функции для заглушки, а затем утверждая с помощью заглушенных аргументов)

Я знаю, что это можно сделать с помощью шпионов (просто позволяя язык генерирует недопустимые аргументы), но логика c внутри «функции а» - asyn c, и мне пришлось бы заглушить все функции, вызываемые «а», в каждом тесте используется «а». Я хотел бы оставить «функцию А» в качестве черного ящика.

Есть ли более приемлемый способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...