例如假设我有以下内容
app.get('/', function(req, res) {
var ip;
if(req.headers['x-forwarded-for']){
ip = req.headers['x-forwarded-for'];
}
else {
ip = req.connection.remoteAddress;
}
});
我想进行单元测试以查看 ip 是否被正确检索。一种方法如下
function getIp(req) {
var ip;
if(req.headers['x-forwarded-for']){
ip = req.headers['x-forwarded-for'];
}
else {
ip = req.connection.remoteAddress;
}
return ip;
}
app.get('/', function(req, res) {
var ip = getIp(req);
});
现在我有一个可以进行单元测试的函数 getIp。但是我仍然被困住了。如何将模拟的 req 对象输入到 getIp 中?
最佳答案
我会写integration -对此进行测试。 Node.js 足够快了。特别是当您使用类似Mocha's之类的东西时观看模式。您可以使用类似 superagent 的内容或请求执行http请求。
还有像 nock 这样的东西至 mock输出你的http请求。尽管我从未使用过它,因为集成测试测试的是真实的东西,并且速度足够快,符合我的口味。
关于unit-testing - 如何在 Node.js 中对请求响应周期进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11129088/