当编写异步函数的Mocha测试时,如果函数没有显式返回一个Promise,可以使用Mocha提供的done()函数来处理异步操作的完成。下面是一个示例:
// 异步函数
function asyncFunction(callback) {
setTimeout(function() {
callback('Hello, World!');
}, 1000);
}
// Mocha测试
describe('asyncFunction', function() {
it('should return "Hello, World!"', function(done) {
asyncFunction(function(result) {
// 断言
assert.equal(result, 'Hello, World!');
done(); // 告诉Mocha测试已完成
});
});
});
在上面的示例中,我们编写了一个名为asyncFunction的异步函数,它通过调用传入的回调函数来返回结果。在Mocha测试中,我们使用it()函数定义了一个测试用例,它应该返回"Hello, World!"。在测试用例中,我们将asyncFunction作为被测试函数调用,并在回调函数中进行断言。在回调函数中,我们调用done()函数来通知Mocha测试已完成。
这样,即使异步函数没有显式返回一个Promise,我们仍然可以在Mocha测试中处理异步操作的完成。
下一篇:编写异步压缩的进度报告