我的登录代码中有以下内容。我已经为它编写了单元测试,authentication.login()
所以它只是我需要测试的响应处理本身。
app.post('/login', function(req, res) {
var username = req.body.username;
var password = req.body.password;
authentication.login(username, password, function(err, result) {
if (err !== null) {
res.setHeader('Content-Type', 'text/plain');
res.setHeader('Content-Length', err.length);
res.end(err);
} else {
req.session.user = result;
var userFilter = ['username'];
result = JSON.stringify(result, userFilter);
res.setHeader('Content-Type', 'application/json');
res.setHeader('Content-Length', result.length);
res.end(result);;
}
});
});
因此,我将编写测试来检查响应标头和正文是否符合预期。但是我该如何处理 authentication.login() 函数呢?它已经过测试,所以我想我应该在这里使用模拟/间谍?但是我将如何设法使用它们以便它们替换身份验证对象?还是不需要模拟 authentication.login 函数,将其作为依赖项留在代码中是否可以?