在Node.js和浏览器上拦截(模拟)http请求

时间:2015-02-26 04:31:13

标签: javascript node.js unit-testing browser

我不知道我是否要求太多,但我想要一个库以同构/渐进方式拦截/模拟HTTP请求(即在node.js和浏览器上工作相同)单位/行为测试。有这样的事吗?

我正在为API构建客户端,它必须在服务器和浏览器上工作。 Nock很棒,但只适用于Node(因为它不能与Browserify一起使用,我试过了。)

我可以模拟我用于请求的库(例如superagentrest)。但是,这会将我锁定在一些库中,并且需要对测试进行重大的重构。

我希望避免重复测试,尽可能避免对环境进行大多数检查。并且不可知实现,因此我需要模拟请求。

我几乎考虑自己制作一个(或者至少是两个库之间的粘合剂)。

1 个答案:

答案 0 :(得分:0)

我看了superagent如何进行测试。他们构建了一个模拟Express服务器,以他们想要的方式响应并检查匹配。

但是这对浏览器有何影响?

事实证明他们正在使用Zuul

Zuul 是一种创建ad-hoc服务器以在浏览器中运行测试的工具。它支持qunit,mocha,tape和一些其他测试框架。它还接受在测试期间运行的模拟服务器。它在Sauce Labs上运行测试,它有一个免费的开源项目计划。

这不是我预期的解决方案,但它是一种解决方案。

您可以查看my project以查看正确的代码(截至本答复时最后一次提交树的永久链接)。