我希望能够只返回存根接收传递给promise的参数,这是可能的:
默认地将Impl:
function(arg) {
return db.find(arg)
.then(result => {
return fnIWantToStub(result);
})
.then(nextResult => {
return done()
});
测试:
var stub = sinon.stub(fnIWantToStub);
stub.returns(PassedThruArgsThatReturnsAPromise);
可以这样做吗?
答案 0 :(得分:1)
docs表示您可以在给定索引处返回arg。
stub.returnsArg(index);
我认为没有全面的回归。
(问题编辑后更新)
您可以存根db.find函数并解决它。我用mocha和chai。
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运行承诺。您也可以使用mocha的完成回调。虽然我经常使用Promise。
结帐http://staxmanade.com/2015/11/testing-asyncronous-code-with-mochajs-and-es7-async-await/