У меня есть фрагмент кода, для которого я пишу модульные тесты, и я пытаюсь отключить некоторые внешние функции, чтобы я мог проверить его должным образом.
Функция, которую я пытаюсь отключитьявляется геттером, с которым я не привык работать (я заглушаю библиотеку, написанную кем-то другим).
Я проверяю правильность 'порядка', учитывая список строк, которыепередается в класс Parser
, который равен 1: 1 с данной строкой.
ParserResultStub.onCall(0).get( () => { return parsedString1 } )
.onCall(1).get( () => { return parsedString2 } )
.onCall(2).get( () => { return parsedString1 } );
const response = await Parser.createItemIdList( [string1, string2, string1] );
Ожидаемая функциональность заключается в том, что, учитывая список строк, я ожидаю, что они будут последовательно проанализированы там, где получатель длякаждый экземпляр проанализированной строки 'class' должен возвращать правильно проанализированную строку.
К сожалению, это не так.Я обнаружил, что любое указанное значение 'last' возвращается все три раза.Например, если я изменил порядок onCall()
с таким, чтобы onCall(1)
был последним, заглушка каждый раз возвращает parsedString2
.
Я относительно новичок в экосистеме JavaScript, поэтому, возможно,Между тем, как работает sinon / onCall
и тем, что я пытаюсь сделать, существует пробел в знаниях.
Буду признателен за любые указания о том, как сделать это правильно !!