2017-05-30 7 views
0

strong-soapモジュールを使用してSOAPリクエストからデータを取得しています。ノードJSでsinonを使用してSOAPクライアント要求をスタブする方法はありますか?

var soap = require('strong-soap').soap; 

soap.createClient(url, options, function (err, client) { 
    var method = client.GetInfoSOAP; 
    method(requestQuery, function (err, info) { 
     // bla bla 
    } 
} 

私は必要なデータを取得しています。今すぐ sinonスタブを使用してSOAPリクエストを模擬する単体テストケースを作成したいが、成功しなかった。どんな助けもありがとう。

+0

私の回答はあなたを助けましたか? – oligofren

答えて

0

soapオブジェクトのcreateClientを制御します。輸入にフック - あなたはリンクの縫い目を使用して

  • をテストするためにあなた自身をコントロールする偽のモジュールを挿入することができ、それを通してセッターを公開 -

    1. 依存性の注入:あなたは2つのカテゴリに分類技術を使用していることを行うことができます/メカニズムを必要とし、モジュールが得ているものを上書きする。

    Sinonプロジェクトはproxyquireを通じてリンク縫い目を使用してa nice pageを持っている、と私はまたhow to do DI on the issue trackerを詳しく説明しています。テストコードで次に

    module.exports._injectSoap = (fake) => soap = fake; 
    

    最初を達成するためには、あなたが必要とするすべてのモジュールにこのような何かを行うことです

    const fakeSoap = { createClient : sinon.stub().returns(/* ? */) } 
    myModule._injectSoap(fakeSoap); 
    
    ... 
    assert(fakeSoap.createClient.calledOnce); 
    assert(...) 
    
  • 0

    こんにちは私は私の問題を解決しました次のコード:

    sinon.stub(soap, 'createClient').yields(null, { 
         GetInfoSOAP: function (request, cb) { 
          return cb(null, myDesiredData); 
         } 
        }); 
    
    関連する問題