我有一个提供AngularJS应用程序的php API。
我一直在寻找有关端到端测试和后端的最佳实践。
在测试我的角度应用程序时,是否应该模拟我的后端应用程序,或者让它到达数据库并创建/更新/删除记录?
我认为这两个论点都有价值。
嘲笑的好处
如果我嘲笑API,测试将更快,更可靠,并从可控,一致的状态开始。
更少的东西可能出错 - 只有更少的活动部件。
由于API是一份合同,我应该对我得到的答案充满信心,并且因为它们是一个众所周知的因素而很容易嘲笑它们。
嘲笑不好
每次更新API时,我都必须更新我的模拟。
模拟可以添加许多复杂且难以维护的代码(虽然这不是已成定局的结论)
点击API的好处
测试将通过服务器端运行应用程序的全部广度和深度,前端JS客户端。
访问API的不利
测试速度较慢 更多设置(需要在本地测试,所以我必须运行并清理数据库) 不一致的起点(除非我不断清理数据库,否则不可能测试页面看起来没有项目的内容)
我想要走哪条路。
单元测试显然会模拟出任何依赖关系,但端到端却是另一回事。
思想?