Javascript Sinon.JS存根解析承诺的函数

Javascript Sinon.JS存根解析承诺的函数,javascript,mocha.js,babeljs,sinon,Javascript,Mocha.js,Babeljs,Sinon,我想使用Sinon存根一个函数,该函数使用回调来解析承诺: const callback = (err, data) => { if (err) { reject(err); } else { resolve(data); } }); stub.me({}, callback); 我试过: var stub = { me: sinon.stub().yieldsTo("resolve", "my_data"

我想使用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函数调用中。我就是这样写的,这样读起来就清楚了


它还包装在一个
新承诺中((resolve,reject)=>{})块。

这是由于范围错误造成的。根据aws sdk模拟的docks,需要在函数中初始化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 
}

这毫无意义。存根是函数的替代品。该功能(及其替代品)必须从某处使用。如果这是一个模块(比如。
/mymodule.js
),那么您需要提供更多的代码。你想测试什么?AWS DynamoDB。我有一个函数,可以将dynamodb文档转换为承诺。我用AWS模拟软件修复了它。我以前试过,但错过了dynamo在每个单独功能范围内需要的部分。在我做了更多的工作后,我会尽快发布一个答案。我认为你的问题不清楚,对其他人没有用处。尚不清楚是什么构成了
newpromise()
以及如何定义
stub
stub.me()
。没有
stub
me
甚至
sinon
的痕迹。虽然这个答案可能已经解决了您的问题,但它不会帮助其他人解决类似的问题“存根函数”,因为您的问题并没有显示全部情况,并且您的答案根本没有提到存根。因此AWS SDK dynamo函数使用回调。我用它们创建了一个新函数,它使用承诺。我想在本地测试代码,所以我尝试了aws模拟npm,但它不起作用。我按照他们的指示在我的函数中定义服务,但它不起作用,所以我切换到sinon。西农没有工作,所以我把那个问题贴了出来。我解释得越多,它就越复杂,所以我尽量把它控制在最低限度。