【发布时间】:2014-01-12 00:54:47
【问题描述】:
有大量问题询问如何在量角器测试中模拟 http 响应。如何做到这一点不是问题,我们应该这样做是问题。
http://en.wikipedia.org/wiki/Test_fixture#Software
我从事 QA 工程师已有 4 年多了,我的大部分自动化测试经验都涉及控制器、模型等的低级(单元)测试和完整系统的高级(集成)测试。在我的 ruby 世界经验中,我们使用 Capybara 进行集成测试以及 blueprint 和 factorygirl(用于不同的项目)来创建模拟数据库条目。这是我们的集成/E2E 测试。
我最近才搬到一个使用 AngularJS 的 javascript 团队。最初的内置测试框架(现已弃用)有一个模拟后端模块,似乎适合我们的需求。量角器现在是标准。直到量角器蒸熟后,我才听到使用夹具进行端到端测试的反弹。许多帖子都指出 E2E 测试应该测试整个堆栈,因此任何后端都不应该被模拟并且可以访问。
集成测试应该使用fixture,为什么?
【问题讨论】:
-
我使用这两种测试。 “E2E”测试使用模拟后端来测试 UI 的细节(当我单击按钮 B 时是否会出现 div A 等),以及使用真实后端进行更粗粒度的 E2E 测试以确保前端和后端正常工作。
-
我认为您应该能够在没有后端的情况下进行 E2E 测试 - 因为后端可能在与前端不同的时间轴上开发。模拟可以成为推进开发的有用工具,一旦不再需要模拟,就可以轻松更改编写的测试以接受实际的后端。
-
为什么不使用fixtures的问题是当我多次运行创建操作的E2E测试时,我将在我的数据库中创建越来越多的虚拟数据,清除这些数据将涉及我流程中的另一个步骤.
标签: angularjs testing integration protractor