gpt4 book ai didi

node.js - Express 中中间件测试的 stub 请求\响应

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:24 25 4
gpt4 key购买 nike

我的 Express 应用程序中有一些中间件功能,它们向单独的服务器发出传出请求,然后将返回的响应发送回客户端。

所以这样的事情:

var request = require('request'),
helpers = require('./helpers.js');

//GET
module.exports.fetch = function(req, res) {
var options = helpers.buildAPIRequestOptions(req);
request(options, function(err, response, body){
res.status(response.statusCode).send(body);
});
};

我正在考虑编写单元测试,并希望在这些函数的传出请求被触发时模拟并返回我自己的响应。

我遇到过 super 测试,并尝试编写一个像这样的套件:

var app = require('./index.js'),
request = require('supertest')(app),
should = require('should');

//GET
describe('GET requests', function(){
it('should do something', function(done){
request
.get('/api/schemes')
.expect(200, done)
.end(function(err, res){
// console.log(res);
// console.log(err);
res.status.should.equal(200);
});
});
});

我想我需要像 sinon 这样的东西,这样我就可以监视一个会影响我的中间件函数的请求并返回我选择的响应。我只是在努力了解如何将 stub 添加到我的测试中。

有人可以进一步建议吗?

谢谢

最佳答案

node-nock可以记录通过 http 模块发出的请求(因此,通过代理请求)。然后,这些可以在您的测试套件中排队等待重放。 GitHub 页面有很棒的文档。

关于node.js - Express 中中间件测试的 stub 请求\响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38999931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com