未捕获的AssertionError:预期{对象(域,_events,...)}的状态码为200,但预期值为404 +-实际

时间:2019-02-25 06:27:01

标签: node.js unit-testing express mongoose

我正在尝试测试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);
};

0 个答案:

没有答案