2017-06-23 5 views
-1

を解決する機能をスタブ:Sinon.JSは、私は約束を解決するコールバックを使用して機能をスタブにしSinonを使用する約束

const callback = (err, data) => { 
     if (err) { 
     reject(err); 
     } else { 
     resolve(data); 
     } 
    }); 

stub.me({}, callback); 

私が試した:

var stub = { 
    me: sinon.stub().yieldsTo("resolve", "my_data"), 
}; 
を私は保ちますモカタイムアウトを取得する

コードでは、コールバックのためにconstが定義されていません。それはすべてstub.me関数呼び出しにあります。私はちょうどそのように書いたので、読むのは明らかです。

new Promise((resolve,reject) => {});ブロックにもラップされています。

+0

これは全く意味がありません。スタブは関数の代わりです。その機能(およびその置き換え)は、どこかから使用する必要があります。これがモジュールの場合(例えば、 '/ my-module.js')、より多くのコードを提供する必要があります。あなたは何を試そうとしていますか? – oligofren

+1

AWS DynamoDB。私はdynamodb-docを約束に変える機能を持っています。私はAWSのモックを使ってそれを修正しました。私はそれを前に試しましたが、個々の機能の範囲でダイナモが必要とされる部分を見逃しました。私はもっ​​と仕事をした後すぐに回答を投稿します。 – steve76

+0

私はあなたの質問が他人にとって役に立たないとは不明だと思います。 '新しいPromise()'と 'stub'と' stub.me() 'がどのように定義されているかははっきりしていません。 –

答えて

-2

これはスコープエラーが原因でした。 aws-sdk-mockのドックごとに、AWSサービスを関数で初期化する必要があります。

は動作しません:

var AWS  = require('aws-sdk'); 
var sns  = AWS.SNS(); 
var dynamoDb = AWS.DynamoDB(); 

exports.handler = function(event, context) { 
    // do something with the services e.g. sns.publish 
} 

作品:

var AWS = require('aws-sdk'); 

exports.handler = function(event, context) { 
    var sns  = AWS.SNS(); 
    var dynamoDb = AWS.DynamoDB(); 
    // do something with the services e.g. sns.publish 
} 
+1

'stub'、' me'または 'sinon'の痕跡はありません。この答えはあなたの問題を解決しているかもしれませんが、あなたの質問は全体の画像を表示せず、あなたの答えはスタブをまったく参照していないので、同様の問題を持つ他の人に「スタブ機能」を助けません。 –

+0

AWS SDK Dynamo関数はコールバックを使用します。私はそれらを使って約束を使った新しい関数を作った。コードをローカルでテストしたかったので、aws-mock npmを試しましたが、これは動作しませんでした。私は機能の中でサービスを定義するための指示に従いました。それは機能しませんでしたので、私はsinonに切り替えました。シノンは働かなかったので、私はその質問を投稿しました。私はそれを説明するほど、複雑になるので最小限に抑えようとしました。 – steve76