我正在研究MEAN堆栈应用程序(使用指导教程),我遇到了一个测试问题。当我运行下面的摩卡测试时,它会超时。我试过延长计时器但无济于事。我有另一个测试几乎完全相同但是对于不同的路线。我检查了我的api文件,以确保我有正确的网址。不知道这里发生了什么。
代码是:
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));
};
}));
答案 0 :(得分:0)
看起来错误发生在我的交易模型中。在我已经确定的类别模型中
_id : {
type : String
},
但是在transactionSchema中没有做同样的事情。