angularjs - Angular 单元测试: Error: Unexpected request: GET

标签 angularjs unit-testing karma-jasmine

下面如何测试这种类型的http格式?

$http({
    method: 'GET',
    url: 'https://api.github.com/user/repos',
    headers:{
        'Authorization': "Basic " + btoa("xxxx:xxxx"),
        'Accept': 'application/json; odata=verbose'
    }
})
.success(function(data, status, headers, config) {
    $scope.valid = true;
    $scope.collection = data;
})
.error(function(data, status, headers, config) {
    $scope.error = data;
});

测试代码

it('should demonstrate using when (200 status)', inject(function($http, $httpBackend) {

    var $scope = {};

    /* Code Under Test */
    $http({
        method: 'GET',
        url: 'https://api.github.com/user/repos',
        headers:{
            'Authorization': "Basic " + btoa("xxxxx:xxxx"),
            'Accept': 'application/json; odata=verbose'
        }
    })
    .success(function(data, status, headers, config) {
        $scope.valid = true;
        $scope.collection = data;
    })
    .error(function(data, status, headers, config) {
        $scope.error = data;
    });
    /* End */

  $httpBackend
    .when('GET', 'https://api.github.com/user/repos', undefined, {
        Authorization: "Basic " + btoa("xxxxx:xxxx"),
        Accept: "application/json;odata=verbose"
    })
    .respond(200, { foo: 'bar' });

  $httpBackend.flush();

  expect($scope.valid).toBe(true);
  expect($scope.collection).toEqual({ foo: 'bar' });

}));

我收到此错误,

Error: Unexpected request: GET https://api.github.com/user/repos No more request expected

有什么想法吗?

最佳答案

你能试试这个吗

$httpBackend.whenGET('https://api.github.com/user/repos', undefined, {
    Authorization: "Basic " + btoa("xxxxx:xxxx"),
    Accept: "application/json;odata=verbose"
}).respond(function(){ return [200,[{foo: 'bar' }]]});

关于angularjs - Angular 单元测试: Error: Unexpected request: GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34950255/

相关文章:

javascript - 是否可以将 Controller 中的作用域变量注入(inject)到 Angular 服务函数中?

javascript - 从mapbox API获取geoJSON数据以确定多边形中的点

javascript - 内容可编辑区域中的 Angular Directive(指令)

unit-testing - 如何为在 Go 中使用 App Engine 服务的代码运行单元测试?

java - 如何在单元测试中设置固定的 hashCode-Value

javascript - 用 Jasmine 测试被拒绝的 promise

angularjs - Angular 复选框使用 ng-click 重置绑定(bind)到复选框的 ng-model,从而防止复选框被取消选中

node.js - 您如何对写入/读取 dynamodb 并通过 AWS API 网关端点调用的 NodeJs Lambda 函数进行单元测试?

angular - 如何测试 Action 是否在 NgRX 中发送?

javascript - 监视 Karma 和 Jasmine 中的 setTimeout 和 clearTimeout