【问题标题】:How to stub a class with Sinon.js如何使用 Sinon.js 存根类
【发布时间】:2018-03-06 13:49:12
【问题描述】:

我正在尝试为调用 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)
  })
})

谢谢

【问题讨论】:

    标签: javascript node.js sinon chai ovh


    【解决方案1】:

    根据我在不描述函数的所有参数的情况下对函数进行存根的经验 - 存根不会捕获它。

    这样写你的存根:

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

    或者你也可以使用sinon的callsfake方法。

    【讨论】:

      猜你喜欢
      • 2014-01-31
      • 2016-12-02
      • 2017-07-12
      • 2012-01-09
      • 2020-07-01
      • 2016-08-16
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      相关资源
      最近更新 更多