我不知道我是否要求太多,但我想要一个库以同构/渐进方式拦截/模拟HTTP请求(即在node.js和浏览器上工作相同)单位/行为测试。有这样的事吗?
我正在为API构建客户端,它必须在服务器和浏览器上工作。 Nock很棒,但只适用于Node(因为它不能与Browserify一起使用,我试过了。)
我可以模拟我用于请求的库(例如superagent或rest)。但是,这会将我锁定在一些库中,并且需要对测试进行重大的重构。
我希望避免重复测试,尽可能避免对环境进行大多数检查。并且不可知实现,因此我需要模拟请求。
我几乎考虑自己制作一个(或者至少是两个库之间的粘合剂)。
答案 0 :(得分:0)
我看了superagent如何进行测试。他们构建了一个模拟Express服务器,以他们想要的方式响应并检查匹配。
事实证明他们正在使用Zuul。
Zuul 是一种创建ad-hoc服务器以在浏览器中运行测试的工具。它支持qunit,mocha,tape和一些其他测试框架。它还接受在测试期间运行的模拟服务器。它在Sauce Labs上运行测试,它有一个免费的开源项目计划。
这不是我预期的解决方案,但它是一种解决方案。
您可以查看my project以查看正确的代码(截至本答复时最后一次提交树的永久链接)。