我想从下面的模块中对函数getAuthorizedUsers进行单元测试。我需要测试的核心功能是在DB.getUsers的回调函数中。我无法找到模仿DB.getUsers回调的方法。如何在Nodejs中测试嵌套的异步调用?
(function() {
const DB = require('./DB');
function getAuthorizedUsers(req, res, callback) {
DB.getUsers(req.db, req.userId, function(err, users) {
users.push({id: 0});
req.users = users;
callback(req, res);
});
}
module.exports = {
getAuthorizedUsers: getAuthorizedUsers
};
})();
这是我到目前为止有:
(function() {
"use strict";
var chai = require("chai");
var User = require("./User");
suite("API", function() {
suite("getAuthorizedUsers", function() {
var req = {
db: {},
userId: '',
};
var res = {};
test("adds admin to list of authorized users", function() {
User.getAuthorizedUsers(req, res, function(req, res) {
//assert that req contains the correct list of authorized users
});
});
});
});
}());
我已经改了个名字,而为了简化代码逻辑。所以,如果代码不遵循最佳实践或者没有意义,请原谅我。
编辑:你有什么建议如何存根“DB.getUsers”?
https://mochajs.org/#asynchronous-code –