【问题标题】:jest-jasmine2 env.js unhandled errorjest-jasmine2 env.js 未处理的错误
【发布时间】:2018-07-12 19:01:48
【问题描述】:

我在使用 Jest 单元测试来测试我的代码时收到这条神秘的错误消息。

console.error node_modules/jest-jasmine2/build/jasmine/Env.js:198 未处理的错误

console.error node_modules/jest-jasmine2/build/jasmine/Env.js:199 错误 在 model.wrappedPointCut [保存] (/home/pi/dev/Group_2/node_modules/mongoose/lib/services/model/applyHooks.js:131:29) 在 /home/pi/dev/Group_2/controllers/Manager.js:80:17 在 Array.map() 在 /home/pi/dev/Group_2/controllers/Manager.js:79:55 在 在 process._tickCallback (internal/process/next_tick.js:160:7)

console.error node_modules/jest-jasmine2/build/jasmine/Env.js:198 未处理的错误

console.error node_modules/jest-jasmine2/build/jasmine/Env.js:199

这是我的测试代码的样子

it.only('Adding a shift entry to DB works', () => {
  expect.assertions(3);
  return m.associateToShifts(["johnDoe"], ["Mondays"]).then(cmdResult => {
    expect(cmdResult.length).toBe(1);
    expect(cmdResult[0].employee.employeeId).toBe("johnd");
    expect(cmdResult[0].shift.shiftTitle).toBe("Mondays");
  }).catch(e => console.log(`Error: Cannot add shift to DB properly. ${e}`));
});

这是我在 Manager.js 中的代码在第 70 - 81 行的样子,这就是 jest-jasmine2 所抱怨的:

var employeeData = Promise.all(employees.map(function(emp) {
      emp.save();
}));

employees 是基于 mongoose findOne() 员工查询的员工对象数组。

尽管显示了此错误,但测试通过了。

以下是我尝试过的一些事情:1) 将 Jest 更新到版本 22.0.6 2) 将 Node JS 更新到版本 9.4.0。这些尝试都没有奏效。

【问题讨论】:

    标签: javascript node.js mongodb mongoose jestjs


    【解决方案1】:

    你好像忘记加“return”了:

    var employeeData = Promise.all(employees.map(function(emp) {
      return emp.save();
    }));
    

    或者es6语法:

    let employeeData = Promise.all(employees.map(emp => emp.save()));
    

    当我创建了一些承诺但没有解决它们时,我遇到了类似的问题。

    【讨论】:

    • 我知道这是旧的,但也许将来有人会发现它有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    相关资源
    最近更新 更多