Вложенный метод заглушки во вновь построенном объекте с использованием sinon - PullRequest
0 голосов
/ 20 февраля 2019

Я использую модуль npm 'azure-arm-cognitiveservices' для получения ключей учетной записи Azure Cognitive Services.

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 из undefined».

Как использовать этот вложенный метод?

1 Ответ

0 голосов
/ 20 февраля 2019

попробуйте это, после создания объекта cognitiveServicesManagementModule с именем клиента, как вы делаете, затем

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

и измените возврат функции следующим образом

stub1.returns(key)

, если вы хотите вернутьобещание

stub1.returns(Promise.resolve( key ));
...