1

私は Visual Studio でAngularJsの上に chutzpah テスト アダプターを使用して Jasmine を使用しています。

テストを実行すると、次のエラーが発生します。

  • エラー: 予期しない要求: 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

エラーは次の URL にありました。

末尾のスラッシュを削除しただけで、うまくいきました。 $httpBackend.when('GET', '/webapi/api/Map')

于 2014-11-17T12:15:46.913 に答える