我有一段代码正在编写单元测试,并且正在尝试添加一些外部功能,以便可以对其进行正确的测试。
我要存根的函数是一个吸气剂,我不习惯使用它(我存根了别人编写的库)。
我正在测试给定传递给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
的工作方式和我想做的事情之间可能存在知识鸿沟。
任何有关如何正确执行此操作的指针将不胜感激!