【发布时间】:2015-09-29 21:06:46
【问题描述】:
我正在尝试根据angular docs 设置和模拟 $httpBackEnd 以进行 e2e 测试。当我请求模板时,我想通过所有请求。从文档中,它说url参数可以是三种类型stringfunction(string)或RegExp及其描述:
HTTP url 或接收 url 并在 url 与当前定义匹配时返回 true 的函数。
我要做什么
我希望所有 GET 请求都发送到 direct/views/.... 和 pub/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 可能是最快的方法,但我对此一无所知。如果您想给我一个有效的正则表达式,我将永远感激不尽。
我知道我的 isTemplateUrl 函数并不能完全满足我的要求,但除此之外,它应该仍然适用于这两个网址。
【问题讨论】:
标签: javascript regex angularjs angularjs-e2e angular-mock