我希望能够返回 stub 接收到的传递给 promise 的参数,这可能吗:
实现:
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);
我认为没有一揽子返回所有参数的方法。
(问题编辑后更新)
您可以 stub 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 的完成回调。尽管我经常只使用 Promise。
结账 http://staxmanade.com/2015/11/testing-asyncronous-code-with-mochajs-and-es7-async-await/
关于javascript - Sinon stub 传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42658194/