使用mocha和嵌套回调测试节点服务器

时间:2013-04-30 10:22:04

标签: javascript node.js mocha sequelize.js

我正在学习节点和mocha并在下面进行测试(生产代码会增加数据库中的字段)。

要查看它是否正常工作,我在调用/ events之前和之后输出该字段的值(参见两个console.log语句)。

此时,两种情况下的值输出均为1。在测试之外,代码工作正常,字段递增。

我怀疑它与我的测试代码中的回调有关(因为我还在学习如何正确编写和测试节点代码,这几乎肯定是这种情况)。

希望有人能发现问题。这个测试的生产代码是here(要点)。

it('"processed" event increases processed count', function(done) {
  Edm.find({campaignguid: '1234'}).success(function(edm) {
    edmProcessedCount = edm.processed;
    console.log("pre: " + edmProcessedCount);  // result is 1

    request.post('http://localhost:3001/events?campaignguid=1234&event=processed', function(err, res, body) {
      Edm.find({campaignguid: '1234'}).success(function(edmm) {
        console.log("post : " + edmm.processed);  // result is 1 (should be 2)
        done();
      });
    })

  });
});

1 个答案:

答案 0 :(得分:1)

您在Mocha测试用例中的查询缺少where子句:

Edm.find({ where : { campaignguid: '1234' }})
           ^^^^^