CallsFake未触发promise promise内的函数

时间:2018-01-28 17:18:22

标签: mocha sinon

我试图将代码库从回调重写为promises,但即使代码工作正常,sinon测试也因为没有触发callFake方法而失败。

在代码中有片段:

notificationDBService.deleteNotification()
  .then(function() { || () => { //Both don't work
    console.log('resolved'); // Is logged
    notificationService.insertNotificationDB()
  });

在我的摩卡测试中,我有:

 sinon.stub(notificationDBService, 'insertNotificationDB').callsFake((n, callback) => {
  insertNotificationNote = n;
  insertNotificationCallCount++;
  callback();
});

从不调用callFake函数,而是在我使用回调设置时:

notificationDBService.deleteNotificationsByProjectIDAndBranch(projectID, projectBranch,
(err, result) => {
  if (err) {
    logger.error(`Could not delete build notifications for: ${projectID} - ${projectBranch}. ${message}`, err);
  } else {
    notificationDBService.insertNotificationDB()

为什么callFake方法不再有效?

1 个答案:

答案 0 :(得分:0)

看起来你正在追踪notificationDBService,你在非承诺版本中调用了notificationDBService.insertNotificationDB,但在承诺的版本中你正在调用notificationService.insertNotificationDB() - 就像我看起来一样一个拼写错误(变量名中缺少DB)?