mocha如何实现异步测试
异步测试
用mocha测试一个函数是非常简单的,但是,在JavaScript的世界中,更多的时候,我们编写的是异步代码,所以,我们需要用mocha测试异步函数。
我们把上一节的hello-test工程复制一份,重命名为async-test,然后,把hello.js改造为异步函数:
const fs = require('mz/fs');
// a simple async function:
module.exports = async () => {
let expression = await fs.readFile('./data.txt', 'utf-8');
let fn = new Function('return ' + expression);
let r = fn();
console.log(`Calculate: ${expression} = ${r}`);
return r;
};
这个async函数通过读取data.txt的内容获取表达式,这样它就变成了异步。我们编写一个data.txt文件,内容如下:
1 + (2 + 4) * (9 - 2) / 3
别忘了在package.json中添加依赖包:
"dependencies": {
"mz": "2.4.0"
},
紧接着,我们在test目录中添加一个await-test.js,测试hello.js的async函数。