URL을 $ resource GET 요청의 매개 변수로 전달 중입니다. Angular는이 매개 변수를 인코딩하는 url이며 $ httpBackend.expectGET 메소드의 요청과 일치하는 것은 까다 롭습니다.
정규식을 사용하여 예상되는 요청과 일치시킬 수는 있지만 제대로 작동하지는 않습니다. 리소스 위치를 "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에'분사 구문을 사용하여 작업. 테스트를 다시 작성하고, 인젝션 기능을 사용하여 종속성을 주입하고, 테스트 배치 순서가 올바른지 확인했습니다. 이제 매력처럼 작동합니다!
건배를 따라 할 때 . 안타깝게도 Angular는 여전히 요청과 일치하지 않습니다. 나는 전반적인 문제를 해결할 수있는 경우를 계속 찾고 있지만 대답이 아니라면 대답으로 받아 들일 것입니다. – daddywoodland