看来这是有效的解决方案,显示了如何使用$httpBacked
http://jsfiddle.net/EgMpe/8/
但就我而言:
路线
app.config(['$routeProvider', function($routeProvider) { $routeProvider.
when('/', {templateUrl: 'partials/user-list.html'}).
…
伪造的服务:
app.run(function($httpBackend) {
var users = [{"id":1,"name":"bob","email":"bob@bobs.com"}, {"id":2,"name":"bob2","email":"bob2@bobs.com"}]
$httpBackend.whenGET('/rest/users').respond(function(method,url,data) {
console.log("Getting users");
return [200, users, {}];
});
});
..
真实服务:
services.factory('Users', function($resource){
return $resource('/rest/users', {}, {
get: {method: 'GET', isArray:true}
});
});
转到将我重定向到页面的“ /”路由时出现 错误user-list.html
:
错误:意外请求:GETpartials / user-list.html在$ httpBackend … / mysite / public /
angular / libs / angular-1.2.0 / angular-mocks.js:1060:9上没有更多请求了
问题1: 是否httpBackend
阻止其他http
要求?
我试图使用 passThrough 方法让http到达真实服务器端:
$httpBackend.whenGET(/^\/mysite\//).passThrough();
但这无济于事。
啊..抱歉,我的RegEx错了:
如果输入 $httpBackend.whenGET(/partials/).passThrough();
然后所有人开始工作。
因此,我得到了教训:不要忘了说: passThrough(); 与正确的 RegEx 。
问题内容: 我的范围内有一个函数可以在用户单击按钮或触发某些事件并自动调用此函数时检索我的服务状态。 这是我的功能,在我使用的控制器中定义: 单元测试如下: 在单元测试中,我还在同一个控制器上进行了其他$ httpBackend测试,但是所有这些仅能正常工作。我究竟做错了什么? 问题答案: 您需要 在 调用方法 之前 提供。 设置请求的期望,然后触发请求。 希望这可以帮助。
问题内容: 我有一个茉莉花测试,其编码如下: 确实可行,但出现错误: 我确实意识到我可以嘲笑其他所有电话。但是,可以说我不在乎我的测试还要加载什么,因为它可能会调用其他一些东西。我如何确保其他所有请求只是“默默发生”,也许对其他所有请求都提供一个虚拟响应? 问题答案: 测试失败,因为发出了您未指定的请求。 尝试添加: 当然,您还应该定义。 另请参阅文档(“要求期望与后端定义”部分),其中说: 请求
问题内容: 我将 Jasmine 和 Karma 一起使用,以测试基于 Angular 构建的应用程序。 我必须测试加载用户数据的服务,并且使用 $ httpBackend 模拟响应。但是,当我运行测试时,出现两个错误: 错误:没有等待刷新的请求! 错误:请求不满意:GET https://api.github.com/users/wilk 模块: 测试: 假设GITHUB_API_URL等于 ‘
我需要向这个网址发出获取请求: 标签中调用的 谢啦
问题内容: 我有一个API端点,必须向其发送多部分HTTP请求,该请求由两部分组成(文件系统文件)和(JSON对象)。 经过一些研究,我发现了如何在AngularJS中执行多部分请求: 1) 该函数最初具有以下形式: 此实现的结果是,请求的各个部分没有设置。 Blob ,对象看起来像这样(有点混乱,基本上第一部分是of ,第二个): 第二种方法为请求的每个部分设置了正确的内容,但没有为部分设置任何
我正在尝试用angularjs上传文件,但有一个问题是“当前请求不是多部分请求”,我几乎尝试了谷歌的所有解决方案,但都没有解决我的问题,希望有人能回答我的问题,谢谢。 这是我的springMVC配置 这是角控制器 这是角服务 这是上传控制器 表单数据 -----WebKitFormBoundaryRZP8MUHA8LCBDZDN 内容-处置:表单-数据;name=“文件”;filename=“1.