1

我在 Visual Studio 中使用 Jasmine,并在AngularJs之上使用 chutzpah 测试适配器。

运行测试时出现此错误:

  • 错误:意外请求:GET /webapi/api/Map
  • 错误:未满足的请求:GET /webapi/api/Map/

服务:

var services = angular.module('mapService', ['ngResource']);
services.factory('mapService', ['$resource', 
function ($resource) {
    var objects = undefined;
    var res = $resource('/webapi/api/Map/', {}, {
        query: {
            method: 'GET',
            isArray: true
        }
    });
    return {
        getObjects: function (callback) {
            res.query(function(successResult) {
                objects = successResult;
            });
            return objects;
        }
    }
}]);

测试:

describe('testing the department controller', function () {
    var $scope, $location, mapController, $httpBackend, myMapService;

    beforeEach(module('app'));

    beforeEach(inject(function ($injector, $rootScope, $controller, _$httpBackend_, mapService) {
        $httpBackend = _$httpBackend_;
        $httpBackend.when('GET', '/webapi/api/Map/')
            .respond([jasonArray]);

        myMapService = mapService;
    }));
    afterEach(function () {
        $httpBackend.verifyNoOutstandingExpectation();
        $httpBackend.verifyNoOutstandingRequest();
    });

    it('should have objects', function () {
        $httpBackend.expect('GET', '/webapi/api/Map/');

        var objects = myMapService.getObjects(function (result) {
            objects = result;
        });
        $httpBackend.flush();
        expect(objects.length).toBeGreaterThan(0);
    });
});

谁能建议我缺少什么?

4

1 回答 1

0

错误在网址中:

刚刚删除了尾部斜杠,它工作正常。 $httpBackend.when('GET', '/webapi/api/Map')

于 2014-11-17T12:15:46.913 回答