我正在尝试根据angular docs为 e2e 测试目的设置和模拟 $httpBackEnd 。当我请求模板时,我想通过所有请求。从文档中,它说url
参数可以是三种类型string
function(string)
或其RegExp
描述:
HTTP url 或接收 url 并在 url 与当前定义匹配时返回 true 的函数。
我正在尝试做的事情
我希望所有direct/views/....
GETpub/views/....
请求PassThrough()
我试过的
var devApp = angular.module('app-dev', ['app', 'ngMockE2E']);
devApp.run(function($httpBackend){
var isTemplateUrl = function(url){
if(url === '/direct/views/_shell/shell' || url === '/direct/views/_shell/shell') {
return true;
}
return false;
};
// Manually setting the url works
// $httpBackend.whenGET('/direct/views/_shell/shell').passThrough();
// $httpBackend.whenGET('/direct/views/home/home').passThrough();
// Does not work
$httpBackend.whenGET(isTemplateUrl).passThrough();
});
放置字符串有效,尝试使用该函数无效。
RegExp 可能是最快的方法,但我对此一无所知。如果您想给我一个有效的 RegExp,我将永远感激不尽。
我知道我的isTemplateUrl
函数并不完全符合我的要求,但除此之外,它应该仍然适用于这两个 url。