JS编写Mocha/Chai测试用例时定义函数报`: expected`错误原因是什么?
问题诊断与修复方案
报错根本原因
你遇到的: expected语法报错是因为对象字面量语法使用不符合规范:module.exports赋值的是一个普通JS对象,对象内部不能直接写入函数声明语句,JS解析器识别到function前的标识符后,会期待出现冒号:来对应属性值,所以抛出该错误。
同时你原始代码中对象的多个属性之间没有加逗号分隔,也属于语法错误。
两种合法修复写法
写法1:ES6 对象方法简写(最常用,推荐)
直接删除函数前的function关键字,补全属性之间的逗号即可:
module.exports = { myFunctiona () { }, myFunctionb () { for (let i = 0; i < 10000; i++) { new Date(); } }, myFunctionc(done) { setTimeout(done, 0); }, myFunctiond (done) { setTimeout(done, Math.round(Math.random() * 10)); } }
写法2:标准键值对写法
显式声明属性名和对应的函数表达式:
module.exports = { myFunctiona: function () { }, myFunctionb: function () { for (let i = 0; i < 10000; i++) { new Date(); } }, myFunctionc: function (done) { setTimeout(done, 0); }, myFunctiond: function (done) { setTimeout(done, Math.round(Math.random() * 10)); } }
内容的提问来源于stack exchange,提问作者SiBasti
相关产品推荐
相关产品推荐

