使用sinon在新构造的对象中存储嵌套方法

问题描述 投票:0回答:1

我正在使用npm模块'azure-arm-cognitiveservices'来获取azure认知服务帐户密钥。

let client = new cognitiveServicesManagement(credentials, subscriptionId)

client.accounts.listKeys(resource_group, location).then(result=>{
      resolve(result.key1||result.key2)
}).catch(err=>{
      reject(err)
})

我尝试将listKeys方法存根,如下所示:

    sinon.stub(cognitiveServicesManagementModule.prototype.accounts, 'listKeys).resolves('key')

但是这会引发“尝试存根属性'listKeys'未定义”错误。

如何对这个嵌套方法进行存根?

node.js unit-testing sinon stub
1个回答
0
投票

尝试使用名称client创建对象cognitiveServicesManagementModule然后执行此操作

let stub1 = sinon.stub(client.accounts, 'listKeys')

并改变这样的函数返回

stub1.returns(key)

如果你想要回报承诺

stub1.returns(Promise.resolve( key ));
© www.soinside.com 2019 - 2024. All rights reserved.