You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:54:01