Mocha测试在MEAN堆栈上超时

时间:2016-04-20 05:38:24

标签: node.js express mocha mean

我正在研究MEAN堆栈应用程序(使用指导教程),我遇到了一个测试问题。当我运行下面的摩卡测试时,它会超时。我试过延长计时器但无济于事。我有另一个测试几乎完全相同但是对于不同的路线。我检查了我的api文件,以确保我有正确的网址。不知道这里发生了什么。

  • express v4.12.3
  • mocha v2.2.4
  • gulp-mocha v2.0.1
  • superagent v1.2.0
  • gulp v3.9.0
  • node v5.1.0

代码是:

 describe('Transaction API', function() {
    it('can load a transaction by id', function(done) {
        // Create a single transaction
        var TRANSACTION_ID = '001';
        var transaction = {
            name: 'LG2 G4',
            _id: TRANSACTION_ID,
            amount: 300
        };

        Transaction.create(transaction, function(error, doc) {
            assert.ifError(error);
            var url = URL_ROOT + '/transactions/id/' + TRANSACTION_ID;
            superagent.get(url, function(error, res) {
                assert.ifError(error);
                var result;
                // And make sure we got the LG G4 back
                assert.doesNotThrow(function() {
                    result = JSON.parse(res.text);
                });

                assert.ok(result.transaction);
                assert.equal(result.transaction._id, TRANSACTION_ID);
                assert.equal(result.transaction.name, 'LG2 G4');
                done();
            });
        });
    });
});

这是我在app.js中的路线

api.get('/transactions/id/:id', wagner.invoke(function(Transactions) {
        return function(req, res) {
      Transactions.findOne({ _id: req.params.id },
        handleOne.bind(null, 'transactions', res));
        };
}));

function handleOne(property, res, error, result) {
 if (error) {
    return res.
      status(status.INTERNAL_SERVER_ERROR).
      json({ error: error.toString() });
 }

 if (!result) {
        return res.
      status(status.NOT_FOUND).
      json({ error: 'Not found' });
 }

var json = {};
json[property] = result;
res.json(json);
}

出于某种原因,这种方法很好。

api.get('/category/id/:id', wagner.invoke(function(Category) {
    return function(req, res) {
      Category.findOne({ _id: req.params.id },
        handleOne.bind(null, 'category', res));
        };
}));

1 个答案:

答案 0 :(得分:0)

看起来错误发生在我的交易模型中。在我已经确定的类别模型中

_id : {
    type : String
},

但是在transactionSchema中没有做同样的事情。