由于一些基础设施的改变(即服务器和vpn),有时我想在脱机模式下运行我们的应用程序。我已经能够用ngmocke2e实现这一点,但是它似乎是一种全有或全无的方法,这意味着您必须显式地设置应用程序中的每个http请求。
有没有办法让它假定,除非显式地设置要处理的路由/url,否则它将自动调用泛型passThrough()操作?
目前我正在做:

noSrvc = $location.search().hasOwnProperty 'nosrvc'

#
# templates
#
$httpBackend.whenGET /(\.htm|\.html)$/
.passThrough();

#
# session
#
rqst = $httpBackend.whenGET /(api\/users\/current)$/
if !noSrvc then rqst.passThrough() else rqst.respond {"user":{

# doing something similar for every single service call in the app... gets tedious after about 3-4

我读过的关于这个主题的大部分内容都是关于单元测试的,除非另有说明,否则并不真正涉及隐含的传递。

最佳答案

这就是我白名单上的配方

app.run(function ($httpBackend) {
    // mocked requests, should come first
    $httpBackend.when('GET', 'mock').respond(200, {});

    // whitelisted real requests, should come last
    angular.forEach(['GET', 'DELETE', 'JSONP', 'HEAD', 'PUT', 'POST', 'PATCH'], function (method) {
        $httpBackend.when(method).passThrough();
    });
});

我确信优先权在这里很重要。

关于angularjs - 有没有一种简单的方法可以使用ngMockE2E将HTTP请求列入白名单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33245499/

10-10 11:48