Вы должны сначала определить, что вам нужно проверить, и когда ваш тестовый пример будет завершен.Кроме того, поскольку ваш код использует обратные вызовы вместо асинхронного ожидания, легче утверждать результат с помощью done ().
В случае успеха проверьте, что processData вызывается только один раз с необходимыми аргументами
КогдаУспешный тест завершается, когда processData вызывается
Следовательно, ваш тестовый пример становится
it('6. Response for data is empty string', (done) => {
let getDecryptJWESpy = sinon.stub(security, "decryptJWE").resolves(message.ERROR_DECRYPTING);
let getHandleDecryptErrorSpy = sinon.stub(updateTask, "handleDecryptError");
let getProcessDataSpy = sinon.stub(updateTask, "processData").callsFake(function fakeFn() {
should.equal(getDecryptJWESpy.callCount, 1);
should.equal(getProcessDataSpy.callCount, 1);
should.equal(getHandleDecryptErrorSpy.callCount, 0);
//The test is done only is this point is reached
done();
});
let response = {
body: "",
text: ""
};
updateTask.getData(null, response, ["TASKID"]);
});
При сбое, проверьте, что handleDecryptError вызывается только один раз с требуемыми аргументами
При сбоетест завершается, когда handleDecryptError вызывается
Следовательно, ваш тестовый пример становится
it('6. Response for data is empty string', (done) => {
let getDecryptJWESpy = sinon.stub(security, "decryptJWE").resolves(message.ERROR_DECRYPTING);
let getProcessDataSpy = sinon.stub(updateTask, "processData");
let getHandleDecryptErrorSpy = sinon.stub(updateTask, "handleDecryptError").callsFake(function fakeFn() {
should.equal(getDecryptJWESpy.callCount, 1);
should.equal(getProcessDataSpy.callCount, 0);
should.equal(getHandleDecryptErrorSpy.callCount, 1);
//The test is done only is this point is reached
done();
});
let response = {
body: "",
text: ""
};
updateTask.getData(null, response, ["TASKID"]);
});
Код как таковой может не работать, поскольку я его не проверял, но, по моему мнению, структуратест должен быть как указано выше.