我正在使用 express 在 node.js 中编写一个应用程序。
我将路由定义与 express 分开,这样我就可以在不模拟 express 的情况下对其进行单元测试。
我所做的是:
文件:usersRoutes.js
var routes = {
getAll: function(req,res) {
var db = req.db; // req.db is initialized through a dedicated middleware function
var usersCollection = db.get('users');
usersCollection.find({},{limit:10},function(e,results){
res.send(results);
});
}
};
module.exports = routes;
文件:users.js
var express = require('express');
var router = express.Router();
var routes = require('./usersRoutes');
/* GET users listing. */
router.get('/', routes.getAll);
module.exports = router;
最后在app.js中:
var users = require('./routes/users/users.js');
app.use('/users', users);
现在,我想编写一个单元测试来检查是否使用正确的参数调用了 req.send。我无法找出正确的方法,因为 req.send 是异步调用的。
对该功能进行单元测试的正确方法是什么?