Код:
var processFooBar = function (message, callback) {
doFooAndBar(message, callback);
};
module.exports.processFooBar = processFooBar;
var doFooAndBar = function (data, callback) {
async.parallel(
[
function (callback) {
foo(data, function (err, response) {
callback(err, response);
});
},
function (callback) {
bar(data, function (err, response){
callback(err, response);
});
}
],
function (err, results) {
callback(err, results);
}
);
};
module.exports.doFooBar = doFooBar;
Модульный тест
describe('Process data', function () {
var fooStub;
beforeEach(function (done) {
done();
});
afterEach(function (done) {
fooStub.restore();
done();
});
it('can process data', function (done) {
fooStub = sinon.stub(fileName, 'foo').yields(null, null);
barNockCall();
app.processFooBar(message,
function (err, response) {
nock.isDone().should.be.true;
nock.cleanAll();
done();
}
}
});
Я получаю следующую ошибку:
can process data:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
(/Path/To/Test.js)
Если я удаляю foo () в async.parallel, то я не получаю ошибку.Кроме того, я думаю, что первый sinon.stub, который fooStubis не вызывается.