我正在尝试将网址与正则表达式匹配.但是后面的正则表达式并不匹配.
$httpBackend.whenGET('/^rest\/find-reservations\?.*/)').respond(function () {
return [200, ['succes'], {}];
});
Run Code Online (Sandbox Code Playgroud)
我不断得到以下错误:
Error: Unexpected request: GET rest/find-reservations?end=1421424299193&reservationClass=Reservation&start=1358352299193
No more request expected
Run Code Online (Sandbox Code Playgroud)
当我将正则表达式更改为绝对字符串'/ find-reservations'时,触发了whenGET.为什么是这样?
编辑:我在嘲笑后端.http://plnkr.co/edit/VF4KbZO3FvngWQsiUcte?p=preview 以下plnkr适用于静态URL和部分.但它不适用于上述情况.
Ila*_*mer 15
如果你想匹配这个网址:
"休息/找到的预约?到底= 1421424299193&reservationClass =预订和启动= 1358352299193"
使用此代码:
$httpBackend.whenGET(/^rest\/find-reservations\?.*/).respond(function () {
return [200, ['success'], {}];
});
Run Code Online (Sandbox Code Playgroud)
Error: Unexpected request:这可能是出于某些原因:
$httpBackend.expectGET(url).expectGET应该与顺序相同requests.$httpBackend.verifyNoOutstandingExpectation()之前打过电话$httpBackend.flush().它完全没有关系$httpBackend.whenGET.
请求期望提供了一种方法,可以对应用程序发出的请求进行断言,并为这些请求定义响应.如果未作出预期请求或以错误的顺序进行,则测试将失败
您的代码有两个问题:
将表达式括起来'...'使其成为一个字符串(即使它看起来像一个正则表达式.
您必须/在模式中包含前导.
您的代码应该像这样修改:
$httpBackend.whenGET(/^\/rest\/find-reservations\?.*/).respond(function () {
return [200, 'success', {}];
});
Run Code Online (Sandbox Code Playgroud)