我正在使用BDD方法开发API。我唯一失败的测试是mongodb POST方法。 Mocha说我的insert()属性是未定义的。我的所有其他数据库函数都在传递。但从我能找到的是我说的是正确的。这是我的路线:
server.post('/courses/course', function(req, res, next) {
req.course.insert(req.body, {}, function(err, results) {
if(err) return next(err);
res.send(results);
});
});
我的测试(mocha / CHAI):
var id;
it('should create a new course basic info', function(done) {
request(server)
.post('/courses/course')
.send({
tdcNumber: 'some wierd number',
shortTitle: 'Ammo something',
longTitle: 'Mass Destruction Power'
})
.expect(200)
.end(function(err, res) {
if(err) return done(err);
expect(err).to.equal(null);
expect(res.body.length).to.equal(1);
expect(res.body[0]._id.length).to.equal(24);
id = res.body[0]._id;
//expect(res.body.success).to.equal(true);
//expect(res.body).to.be.an('object');
//expect(res.body.course.shortTitle).to.equal('Ammo something');
//expect(res.body.course.tdcNuymber).to.equal('some wierd number');
//expect(res.body.course.longTitle).to.equal('Mass Destruction Power');
})
done();
});
我确信这是一个愚蠢的noobie错误。我在github上发布了我的项目https://github.com/EnergeticPixels/apiMockgoose
所以它在哪里?
贝
答案 0 :(得分:0)
使用了错误的方法。应该使用.save',如下所示:
courseName.save(function(err) {
if(err) res.send(err);
res.json({message: 'A new course name added to the library shelves!', data: courseName});
});
的新项目