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

前端之家收集整理的这篇文章主要介绍了角度模拟 – 只是模拟显式请求.通过所有意外的请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我发现这个令人难以置信的令人沮丧的角度嘲笑阻止所有请求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();
}

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

原文链接:https://www.f2er.com/angularjs/142797.html

猜你在找的Angularjs相关文章