返回Mongoose承诺的单元测试函数

时间:2016-06-04 15:53:41

标签: mongodb unit-testing mongoose factory-bot sinon

要测试的代码

objID

单元测试

import { User } from '../models/no-sql/user';

function userCreate(req) {
    const user = new User({
       username: req.username,
        password: req.password
    });

   return user.save();
}

app.get('/userCreate', function(req, res) {
    User.findOne({ username: req.username }).lean().exec((err, data) => {
        if(data){
            userCreate(req).then(function() {
                // success
            }, function(err) {
                // error
            });
        }else{
        // no user found
        }   
    });
});

测试得到返回user.save()然后超时。似乎我在单元测试中遗漏了一些东西,但没有抛出任何错误。我正在使用sinon-as-promise来解决这个承诺,但它似乎没有看到它。

1 个答案:

答案 0 :(得分:2)

为了简洁起见,您不太可能故意在示例代码中省略res.send()调用。

为了确保,当路由器中调用的userCreate函数成功时,您是否返回200状态代码?

userCreate(req).then(function() {
   // success
   res.status(200).send('User created successfully');
}