我正在尝试测试CRUD操作。在这里,在这种情况下,我试图对getUserbyID函数进行单元测试。但是,我不断收到此错误:
未捕获的AssertionError:预期{对象(域,_events,...)}的状态码为200,但得到404 +预期-实际
我试图控制输出,但是它说user._id参数没有被填充。虽然,用户确实会保存在数据库中。以下是控制器,路由和单元测试的代码。谢谢!
// unit-test.spec.js
describe('/GET/:_id user', () => {
it('it should get a user by the given ID', (done) => {
var user = new User({ email: "mjn.nilesh1234@gmail.com", password: "gunners", fullname: "Nilesh Maharjan"});
user.save((err, user) => {
if (err) {
return done(err);
}
chai.request(server)
.get('api/user/' + user._id)
.send(user)
.end((err, res) => {
if (err) {
done(err);
}
// res.body.user.should.have.property('_id').eql(user._id);
res.should.have.status(200);
done();
});
});
});
});
// controllers.js
exports.getUserById = function (req, res, next){
User.findById(
{_id: req.params._id}, function(err,users){
if (err){
res.send(err);
}
res.status(200).json({
Success: true,
user: users
});
});
};
// routes.js
var AuthenticationController = require('./controllers/authentication');
module.exports = function (app){
var apiRoutes = express.Router();
apiRoutes.get('/user/:_id', AuthenticationController.getUserById);
app.use('/api', apiRoutes);
};