Sinon存根通过参数

问题描述 投票:0回答:1

我希望能够将存根接收到的参数返回给承诺,这可能吗:

实现:

function(arg) {
   return db.find(arg)
     .then(result => {
        return fnIWantToStub(result);
      })
      .then(nextResult => {
         return done()
      });

测试:

var stub = sinon.stub(fnIWantToStub);
stub.returns(PassedThruArgsThatReturnsAPromise);

这能做到吗?

javascript node.js sinon
1个回答
2
投票

docs 声明您可以在给定索引处返回一个 arg。

stub.returnsArg(index);

我认为没有一揽子返回所有参数。

(问题编辑后更新)

您可以存根 db.find 函数并解析它。我用摩卡和柴。

const dbStub = sinon.stub(db, 'find');
const expected = {..};
dbStub.returns(Promise.resolve(someDataFixture));
const result = functionUnderTest(args);
// using chaiAsPromised
return expect(result).to.eventually.equal(expected);

请注意,您必须返回才能让 Mocha 运行 promise。您还可以使用 mocha 的 done 回调。尽管我经常只使用 Promise。

结帐http://staxmanade.com/2015/11/testing-asyncronous-code-with-mochajs-and-es7-async-await/

© www.soinside.com 2019 - 2024. All rights reserved.