[英]How to stub a class with Sinon.js
我正在嘗試為調用OVH api的函數編寫一個簡單的測試。
我不明白,我的sinon.js存根沒有“轉移” ovh api的requestPromised方法。 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.