我在一个$资源GET请求中传递一个url作为参数. Angular是url编码此参数,并且匹配$httpBackend.expectGET方法中的请求是finicky.
原文链接:https://www.f2er.com/angularjs/142564.html我看到您可以使用正则表达式来匹配预期的请求,但无法使其正常工作.我想匹配资源位置,但与任何“uri”查询字符串参数值匹配.
按Ctrl
var resource = $resource('../api/lookup'); resource.get({ uri: "http://www.something.com" },function (data) { // do something });
测试
// mock out the $httpBackend response $httpBackend.expectGET(/\.\.\/api\/lookup\?uri=.*/)).respond(200,{ Response: "a response" }); // call my test method here // ensure the $httpBackend work is done $rootScope.$apply(); $httpBackend.flush(); // do assertions
业绩输出
Error: Unexpected request: GET ../api/lookup?uri=http%3A%2F%2Fwww.something.com Expected GET /../api/lookup?uri=.*/
任何人都可以看到为什么我的正则表达式不匹配?
编辑
即使改进正则表达式,建议我无法使用’$var’注入语法来获取这个工作.我重写了测试,注入注入功能的依赖关系,并确保我的测试安排的顺序是正确的.现在它的工作就像一个魅力!