由于基础架构的某些更改(即服务器和VPN),有时我想以 脱机 模式运行我们的应用程序。我已经可以使用 ngMockE2E 来实现此功能, 但这 似乎是一种全有或全无的方法,这意味着您必须从应用程序中显式设置每个HTTP请求。
有没有一种方法可以假设,除非您明确设置要处理的路由/ URL,否则它将自动调用通用passThrough()操作?
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(); }); });
我非常确定优先级在这里很重要。