我需要测试我的JavaScript浏览器客户端,我需要echo服务器。当我说echo服务器时,我并不仅仅意味着回应身体(POST数据),而是整个请求,包括标题。
是否可以,或者我是否必须从请求属性重新创建请求头?
答案 0 :(得分:0)
HTTP模块(以及connect
和express
等包装框架)在处理请求时会公开两个对象。这两个对象被传递给请求的回调。以express
为例:
app.get('/', function(request, response) {
第一个参数是请求对象,它包含所有内容(从标题到状态代码到正文到很多其他东西)。
查看特定模块的文档,了解每个模块的完成情况。
答案 1 :(得分:0)
我建议您使用nock模块,而不是使用“echo”服务器测试应用程序。
它允许您:
还有更多。实际上,这应该比产生实际的HTTP服务器快得多。它还使您的测试代码库更清晰,更易于理解,因为响应的行为与您的请求和其他相关逻辑一起定义。
作为一个真实示例,请查看使用 Nock 的google-api-nodejs-client来测试客户端是否正确响应服务器的响应,即它在有效JSON时生成有效数据收到响应,它会在遇到400 HTTP状态代码时触发错误等等。所有这些都是在Nock的帮助下完成的。