unit-testing - 如何在 Node.js 中对请求响应周期进行单元测试?

标签 unit-testing node.js httprequest

例如假设我有以下内容

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/

相关文章:

node.js - 无法使用 @azure/storage-blob 中的 uploadFile 方法设置内容类型(SDK/NPM)

node.js - AWS Lambda GraphicsMagick 错误 : gm/convert binaries can't be found"

node.js - 从现有的 Node_Modules 文件夹构建 Package.Json?

json - Protractor :HTTP 响应测试

ios - 如何设置全局变量来指定http请求之间的时间?

unit-testing - 使用Sinon、Mocha、Enzyme 和 React 模拟窗口

java - 如何测试JavaFX Controller 的方法?

unit-testing - kotlin + Spring boot 中的单元测试休息 Controller

HTML 预取资源

c++ - 如何使 CppUnit 日志记录更详细?