我是 JavaScript 中 Promises 的新手,虽然它似乎在某种程度上对我有用,但我无法测试“拒绝”值。
我正在通过一个错误,并希望确保它是一个错误,更重要的是,错误代码与我的期望相匹配。
return new Promise(function(resolve, reject){
tableService.deleteEntity(config.azureTable.tableName,
visitor.azureEntity(), function (error, response) {
// If successful, go on.
if (!error) {
resolve(response);
}
// If unsuccessful, log error.
else {
/* If we know it's a resourceNotFound
that's causing the error, return that. */
if (error.code === 'ResourceNotFound') {
reject(new Error('Record not found'));
}
// For unexpected errros.
else {
reject(new Error('Table service error (delete): ' + error));
}
}
});
});
测试,在 Mocha 中 - 使用 chai 和 chai-as-promised。其他一切都在工作(我有 24 个通过测试)——但这个让我卡住了!
it('return an error when the lookup fails', function (done) {
storage.delete(globalUUID).then(function(sucess) {
done(sucess);
}, function(error) {
expect(error).to.be.an(Error);
done();
});
});
任何帮助将不胜感激。