AngularJS的 拦截器 和 Mocks

拦截器是 AngularJS 内置的一个特性,你可以插入一个请求或者回调方法链,修改或者打断各终结点之间的逻辑流。但在 AngularJS 应用的单元测试中,拦截器是用来捕捉 XHR 请求, 以避免外部请求,因为它会触发内部路由(解析的时候),Controller,Service 甚至是 Directive (不要在 Directive上这样做 :P)。这就是一个单纯的 AngualrJS 方法,任何外部请求都会被过滤(比如你在做这些的时候用 $http),不过用拦截器会增加测试的复杂度和额外代码。因此如果你想避免拦截和 Mock,那么用 Midway 测试来对应你的路由, Controller, Service 和 Directive。

另一种避免 XHR 操作的方法是使用 Mock。Mock 是用来模拟提供请求的返回数据的。所以如果你有一个开销非常大的操作(比如说调用外部 API )的时候,它需要用很长时间来获取数据,那么最好的办法就是用 Mock 来欺骗你的代码,让它继续干接下来的事情而非等待。Mock 是一个非常有用的方法,用来分离测试代码,排除噪音。

AngularJS 提供了内部的 Mock 模块 angular-mocks.js,用于 单元测试(不是 Midway 或者 E2E 测试) 。 Karma 配置文件查找 / test 文件夹下面的每个测试文件,执行。记住一件事情,如果你打算在以后用 MochaJS 做单元测试,用 Bower 来管理 angular-mocks ,所以你可以确保 angular-mocks 最新。

转载于:https://my.oschina.net/ilivebox/blog/277487

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值