当前位置: 首页 > 面试题库 >

意外的请求:GET在$ httpBackend处预期没有其他请求

万俟飞语
2023-03-14
问题内容

我的范围内有一个函数可以在用户单击按钮或触发某些事件并自动调用此函数时检索我的服务状态。

这是我的功能,在我使用的控制器中定义:

$scope.getStatus = function() {
  $http({method: 'GET', url: config.entrypoint + config.api + '/outbound/service/' + $scope.serviceId})
    .success(function(data) {
      $scope.errorMessage = '';
      $scope.serviceAllGood = data;
    })
    .error(function() {
      $scope.serviceAllGood = '';
      $scope.errorMessage = 'We are experiencing problems retrieving your service status.';
    });
  }

单元测试如下:

describe('SendServiceCtrl', function(){
    var scope, ctrl, $httpBackend, configuration;

    beforeEach(function () {
      module('papi', 'ngUpload');
    });

    beforeEach(inject(function(_$httpBackend_, $rootScope, $controller, config) {
      configuration = config;
      $httpBackend = _$httpBackend_;
      $httpBackend.expectGET(configuration.entrypoint + configuration.api + "/user/outboundstatus/").respond(200, {"meta":{"apiVersion":"0.1","code":200,"errors":null},"response":{"allowed":false}});
      scope = $rootScope.$new();
      ctrl = $controller('SendServiceCtrl', {$scope: scope});
  }));

  it('Should get the status', function() {

    scope.serviceId = '09bb5943fa2881e1';
    scope.getStatus();
    $httpBackend.whenGET(configuration.entrypoint + configuration.api + '/outbound/service/' + scope.serviceId).respond(200, {"meta":{"apiVersion":"0.1","code":200,"errors":null}});

  });

});

在单元测试中,我还在同一个控制器上进行了其他$ httpBackend测试,但是所有这些仅能正常工作。我究竟做错了什么?


问题答案:

您需要whenGET 调用方法 之前 提供。

it('Should get the status', function() {
    scope.serviceId = '09bb5943fa2881e1';
    $httpBackend.whenGET(configuration.entrypoint + configuration.api + '/outbound/service/' + scope.serviceId).respond(200, {"meta":{"apiVersion":"0.1","code":200,"errors":null}});
    scope.getStatus();
});

设置请求的期望,然后触发请求。

希望这可以帮助。



 类似资料:
  • 问题内容: 我有一个茉莉花测试,其编码如下: 确实可行,但出现错误: 我确实意识到我可以嘲笑其他所有电话。但是,可以说我不在乎我的测试还要加载什么,因为它可能会调用其他一些东西。我如何确保其他所有请求只是“默默发生”,也许对其他所有请求都提供一个虚拟响应? 问题答案: 测试失败,因为发出了您未指定的请求。 尝试添加: 当然,您还应该定义。 另请参阅文档(“要求期望与后端定义”部分),其中说: 请求

  • 问题内容: 看来这是有效的解决方案,显示了如何使用 http://jsfiddle.net/EgMpe/8/ 但就我而言: 路线 … 伪造的服务: .. 真实服务: 转到将我重定向到页面的“ /”路由时出现 错误: 错误:意外请求:GETpartials / user-list.html在$ httpBackend … / mysite / public / angular / libs / an

  • 我需要向这个网址发出获取请求: 标签中调用的 谢啦

  • 冒充客户 客户端的控制器 } 编辑3:我添加了功能区 我的服务应用程序和我的api是使用虚假客户机。不幸的是,我仍然有同样的问题。我已经刷新和重建了一切。 编辑4:我已经为这个问题创建了一个GitHub项目。 输入输入模块使用输入格式和输入解析模块作为假客户机来验证输入字符串的长度和解析/打印项。我一直使用字母表作为输入,所以输入参数的最小长度设置为26。input-format在端口8080上运

  • 问题内容: 将请求正文与GET请求一起传递是否违反REST风格? 例如在Elasticsearch中过滤一些信息 甚至设计了一些工具来避免GET请求中的请求主体(例如邮递员) 问题答案: 从RFC: GET请求消息中的有效负载没有定义的语义。在GET请求上发送有效内容正文可能会导致某些现有实现拒绝该请求。 换句话说,这不是禁止的,但是它是未定义的行为,应避免使用。HTTP客户端,服务器和代理可以随

  • 问题内容: 我正在尝试学习如何使用AlamoFire,但遇到了麻烦。 到目前为止,我的方法如下: 这将返回nil,这是一个问题。从我在这里阅读的内容来看,这是因为请求可能要花一些时间,因此直到返回之后才执行关闭。建议的将返回值移到闭包中的解决方案对我不起作用,编译器只会大喊大叫(添加后得出的结果是“’String’不是void的子类型”)。提供的其他解决方案也是如此。 有任何想法吗?甚至与该问题无