我希望能够将存根接收到的参数返回给承诺,这可能吗:
实现:
function(arg) {
return db.find(arg)
.then(result => {
return fnIWantToStub(result);
})
.then(nextResult => {
return done()
});
测试:
var stub = sinon.stub(fnIWantToStub);
stub.returns(PassedThruArgsThatReturnsAPromise);
这能做到吗?
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/