`sinon.stub()。onCall()`仅返回单元测试的最后一个功能

时间:2019-07-10 14:56:35

标签: typescript sinon

我有一段代码正在编写单元测试,并且正在尝试添加一些外部功能,以便可以对其进行正确的测试。

我要存根的函数是一个吸气剂,我不习惯使用它(我存根了别人编写的库)。

我正在测试给定传递给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的工作方式和我想做的事情之间可能存在知识鸿沟。

任何有关如何正确执行此操作的指针将不胜感激!

0 个答案:

没有答案