使用Jasmine's exceptGET/$httpBackend,what'respond()的好处
When using Jasmine's exceptGET / $httpBackend, what's the benefit of having .respond()?
我正在使用一本名为AngularJS Up and Running的书。给出了一个使用CCD_ 1的例子。这是一个例子:
mockBackend = $httpBackend;
mockBackend.exceptGET('/api/note')
.respond([{id:1, label: 'Mock'}]);
我的问题是,单元测试服务器调用的目的不是进行服务器调用并验证服务器调用是否符合我们的预期吗?
对于上面的代码,它不只是进行服务器调用并强制响应等于[{id:1, label: 'Mock'}]
吗?如果我们不能检查实际的反应是什么,那么这样做有什么意义?
因为在代码的后面,它会像这样检查响应:
mockBackend.flush();
expect(ctrl.items).toEqual([{id:1, label: 'Mock'}]);
它不是总是等于[{id:1, label: 'Mock'}]
吗,因为这就是我们强迫响应等于的吗?拥有.respond()
并控制响应有什么好处?
如果您在单元测试中真的遇到了服务器上的API端点,它将不再是单元测试-它现在涉及的不仅仅是被测试的组件(控制器/服务/提供商等)-网络、web服务器、后端本身,可能还有数据库等-现在这将成为集成测试或系统/功能测试。
您的单元测试将不再是孤立的,并且将依赖于比它应该依赖的更多的东西。嘲讽的目的是使测试孤立、独立并模仿某些所需的条件——在本例中是HTTP响应——然后检查被测试组件的反应。
expect(ctrl.items).toEqual([{id:1, label: 'Mock'}]);
这个预期调用本身至少会检查模拟是否成功应用,并且items
控制器变量是否包含模拟响应。
请查看更多信息:
- 单元测试与功能测试
- Mocking是什么
相关文章:
- React Native-What'It’在任何地方都要留下逗号
- What does requirejs.config() do?
- reducers在redux中得到Function not Object,what'it’他错了
- IndexedDB同步api+web工作者-what'这就是重点
- What is toLocaleString()?
- What is the difference between `HTMLImports.whenReady` and `
- Gmaps4rails:What'这是通过AJAX添加标记后启用集群的正确方法
- 分析错误失败-What'It’他错了
- What does .equals() do?
- What type is the 'return' keyword?
- 随机数生成器,what'我的方法/统计数据有问题吗?[JS]
- What is the reason for cloning the listeners array in nodejs
- JavaScript-What'匿名函数和普通代码之间的区别是什么
- javascript ArrayBuffer,what'it’这是干什么的
- What is jQuery Unobtrusive Validation?
- What does connect.facebook.net/en_US/all.js do
- what is "app.router" express.js
- Magento configurable.js - what does separatorIndex do?
- 使用“angular.copy”设置模型-what'这有好处
- 使用Jasmine's exceptGET/$httpBackend,what'respond()的好处