簡體   English   中英

如何使用Sinon.js存根課程

[英]How to stub a class with Sinon.js

我正在嘗試為調用OVH api的函數編寫一個簡單的測試。

我不明白,我的sinon.js存根沒有“轉移” ovh apirequestPromised方法。 sinon.js的存根與類對象的工作方式不同嗎?

我的功能(myOvhApi.js):

const ovh = require('ovh')({
  endpoint: 'Endpoint',
  appKey: 'AppKey',
  appSecret: 'appSecret',
  consumerKey: 'ConsumerKey'
})

exports.myFunction = async ( ipAdress, subDomain, ovhDynDNSId ) => {

  try{
    await ovh.requestPromised( 'PUT', `/domain/zone/${zone}/dynHost/record/${ovhDynDNSId}`,
      {
        'ip': ipAdress,
        'subDomain': subDomain
      })
  } catch (error) {
    console.log(error)
  }

  return true
}

我的測試:

const ovh = require('ovh')
const myOvhApi = require('myOvhApi')

describe('description', () => {

  it('description', async () => {

    const zone = 'mydomain.com'
    const ovhDynDNSId = '12345'
    const ipAdress = '127.0.0.1'
    const subDomain = 'subDomain'

    sinon.stub( ovh, 'requestPromised' ).returns(true)

    const expectation = await myOvhApi.myFunction ( ovhDynDNSId, ipAdress, subDomain )
    expect( expectation ).to.equal(true)
  })
})

謝謝

以我的經驗,在不描述函數的所有參數的情況下對函數進行存根-存根不會捕獲該函數。

這樣寫你的存根:

 sinon.stub( ovh, 'requestPromised', (method, uri) => { return true } 

或者,您也可以使用sinon中的callsfake方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM