我有一个提供 AngularJS 应用程序的 php API。
我一直在寻找有关端到端测试和后端的最佳实践。
我应该在测试我的 Angular 应用程序时模拟我的后端应用程序,还是让它访问数据库并创建/更新/删除记录?
我认为这两种论点都有优点。
嘲讽的好处
如果我模拟 API,测试会更快、更可靠,并且从可控、一致的状态开始。
更少的事情会出错 - 移动部件更少。
由于 API 是一种合同,我应该对我得到的响应充满信心,并且因为它们是一个已知因素,所以可以轻松地嘲笑它们。
嘲笑的坏处
每次更新 API 时,我都必须更新我的模拟。
Mocking 会增加很多复杂且难以维护的代码(尽管这不是已成定局)
使用 API 的好处
测试将全面测试应用程序的广度和深度,从前端 JS 客户端到服务器端。
攻击 API 的坏处
较慢的测试 更多的设置(需要在本地进行测试,所以我必须运行并清理数据库) 不一致的起点(除非我不断清理数据库,否则无法测试页面的外观而没有项目)
我有点纠结该走哪条路。
单元测试显然会模拟出任何依赖关系,但端到端是另一回事。
想法?