angularjs – 有一种简单的方法可以使用ngMockE2E将HTTP请求列入白名单

前端之家收集整理的这篇文章主要介绍了angularjs – 有一种简单的方法可以使用ngMockE2E将HTTP请求列入白名单前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由于一些基础设施的变化(即服务器和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相关文章