角度模拟 – 只是模拟显式请求.通过所有意外的请求

我发现这个令人难以置信的令人沮丧的角度嘲笑阻止所有请求BY DEFAULT,并迫使我“通过”我想要的.

有时我只想用一个模拟测试1个url,我必须为每个“意外请求”错误跳过严重的环.

我不知道正则表达式,我不喜欢正则表达式,我不想使用正则表达式!

看看这个可怕的代码,我需要一个简单的模拟

$httpBackend.whenGET(/\/atlas\/account\/[0-9]+$/)
     .respond(atlasAccounts[0]);

  $httpBackend.whenGET(/\/scripts$/).passthrough();     
  $httpBackend.whenGET(/^\w+.*/).passthrough();     
  $httpBackend.whenPOST(/^\w+.*/).passthrough();

为什么这不能简化为一行?

$httpBackend.whenGET(/\/atlas\/account\/[0-9]+$/)
     .respond(atlasAccounts[0]);

甚至更好,为什么它不支持通配符?他们试图让开发者的生活变得更加困难吗?

$httpBackend.whenGET("/atlas/account*") 
     .respond(atlasAccounts[0]);

这就是我需要的,如果只是这个直观的…

有没有办法禁用这个全或无约定在ngMock和ONLY拦截网址我明确地模拟?

首先添加所有的捕获,然后最终添加一个passthrough为所有.我在我的应用程序中做这样的事情,并且工作很棒:
function run($httpBackend) {
    var phones = [{ name: 'phone1' },{ name: 'phone2' }];

    // Capture specific request
    $httpBackend.whenGET('/phones').respond(function () {
        return phones;
    });

    // Passthrough everything
    $httpBackend.whenGET(/[\s\S]*/).passthrough();
}

这将捕获“/手机”.如果没有捕获,它将传递.

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...