javascript 我的模拟函数被调用的次数不超过一次

xfb7svmp  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(118)

我有麻烦了。我在设置一个匿名函数

let getLisMock = sinon.mock();
GetListMock.calledWith({data: 'data'});

我正在测试的功能

function someFunc({data: 'data'}, callback) {  
 async.retry({times: 3,interval: 10}, function(callback){  
 getList({data: 'data'}, callback);  },
 callback) 
}

我将someFunc和getList与rewire和__set__组合在一起。在调用函数之前,sinon的设置如下所示

GetListMock.onCall(0).yields(new Error('error'), null);
GetListMock.onCall(1).yields(null, {items: [{id: 1}]});

接下来,调用函数并预期。
无论我做什么,我都会得到一个错误:未捕获的预期错误:匿名模拟已调用一次
很抱歉以这种形式提问,我现在没有电脑。如果稍后没有人回答,我会添加一个测试样本。
我试着用once()打一个电话,只是抛出一个错误,但最终所有的道路都把我引到了这里。

k4aesqcs

k4aesqcs1#

请先尝试呼叫GetListMock.twice()

GetListMock.twice();
GetListMock.onCall(0).yields(new Error('error'), null);
GetListMock.onCall(1).yields(null, {items: [{id: 1}]});

相关问题