Я пытаюсь проверить операции CRUD.Здесь, в этом случае, я пытаюсь выполнить модульный тест функции getUserbyID.Однако я продолжаю получать эту ошибку:
Uncaught AssertionError: ожидается, что {Object (domain, _events, ...)} будет иметь код состояния 200, но получил 404 + ожидаемый - фактический
Iпопытался утешить вывод, но он говорит, что параметр 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);
};