假阳性单位检验结果

时间:2016-03-06 18:00:30

标签: javascript node.js sinon

我注意到在javascript及其框架中进行单元测试非常痛苦。许多失败的积极结果。即

it('should call Event.create when all if ok', function () {
  EventsPersistancyService.accept(message).then(function () {
    sinon.assert.calledOnce(s3);
    done();
  });
});

EventsPersistancyService:

var EventsPersistancyService = {
  accept: function acceptService(msg) {

    var worker_id = WorkerCacheService.get('some login');
    var app_category = AppCategoryService.get('some');
    Event.create('msg'); <------------  **first**

    var p = Q.all([worker_id, app_category]).then(function () {
      var content = msg.content.toString();
      content = JSON.parse(content);

      var tmp = {};

      return Event.create('msg'); <------ **second**
    });

    return p;
  }
}

在该示例测试中,但不应该。我做错了什么?

1 个答案:

答案 0 :(得分:1)

对于初学者,您从未在回调中将{完成回调定义为it。但对于承诺,最好在测试中返回承诺,摩卡将等待承诺解决。

it('should call Event.create when all if ok', function () {
  return EventsPersistancyService.accept(message).then(function () {
    sinon.assert.calledOnce(s3);
  });
});

完成回调的工作示例(注意done声明作为函数参数):

it('should call Event.create when all if ok', function (done) {
  EventsPersistancyService.accept(message).then(function () {
    sinon.assert.calledOnce(s3);
    done();
  });
});