我正在开发一个Angular应用程序(Angular 1.1.5)。我需要一些方法来模拟针对e2e测试的REST API响应。
AngularJS (Green & Seshadri)详细介绍了使用$httpBackend
测试HTTP请求的单元,但对e2e测试几乎没有说明。
文档建议使用the ngMockE2E
module来模拟$httpBackend
(这与正常的单元测试$httpBackend
模拟不同。
我花了几个小时调查ngMockE2E
API,虽然我可以看到一些好处,但似乎有许多缺点。我的问题是:
ngMockE2E
相对于提供测试响应的简单服务器有什么优势?,或者更一般地说,测试Angular应用与a的交互的最佳方式是什么?服务器吗
我可以想到一些缺点:
ngMockE2E
和我的实际应用程序模块的新模块)来引导应用程序/resource/:id
获取 id 参数,我需要提供一个匹配URL(\/resource\/.+$
)的正则表达式,然后拆分匹配的URL字符串斜线并选择最后一个元素。我也可以想到一些优点。使用ngMockE2E
时:
$httpBackend
将检查所有 HTTP匹配请求。 对思想和经历非常感兴趣。
答案 0 :(得分:1)
我的结论,后来几周的开发:我发现一个简单的虚拟后端(Node / Express)比e2e测试模拟后端更灵活和可维护。最引人注目的原因是正确的URL模式匹配和浏览器调试的真实HTTP请求。