2017-09-25 8 views
0

私は、OVH APIを呼び出す関数の簡単なテストを書こうとしています。私は理解していないSinon.jsでクラスをスタブする方法

、私のsinon.jsスタブいけない "迂回" ovh api方法をrequestPromised。 sinon.jsのスタブは、クラスオブジェクトとは異なる働きをしますか?

My機能(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) 
    }) 
}) 

は、関数のパラメータのすべてを記述することなく、機能をスタブ私の経験で、あなたに

答えて

0

ありがとうございました - スタブはそれをキャッチしません。

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

それとも、またsinonからcallsfakeメソッドを使用することができます。

はあなたのスタブ、このように書きます。

関連する問題