AngularJS + Карма-Жасмин: Неожиданный запрос + UI Router - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь провести модульное тестирование HTTP-службы AngularJS с помощью Karma-Jasmine. Но я сталкиваюсь со следующей ошибкой из кармы:

Error: Unexpected request: GET app/license/license.html

Я гуглил и обнаружил, что это как-то связано с ui-router . Следующая ссылка StackOverflow: ( UI-маршрутизатор взаимодействует с модульным тестом $ httpbackend, angular js ) предлагает некоторые ответы, но ни один из них не работает для меня, и ошибка остается прежней.

Я публикую нижеприведенный код для справки:

licensedata.service.js

(function () {
    "use strict";

    angular
        .module("app")
        .factory("licenseDataService", licenseDataService)

    licenseDataService.$inject = ["$http"];

    function licenseDataService($http) {

        return {
            getLicenseSpecs: getLicenseSpecs
        };

        function getLicenseSpecs() {
            return $http.get("http://localhost:8080/?command=print-spec")
                .then(success)
                .catch(fail);

            function success(response) {
                return response.data;
            }

            function fail(e) {
                return e.data;
            }
        }
    }
})();

licensedata.service.spec.js

describe("LICENSE DATA SERVICE", function () {

    var licenseDataService;
    var httpBK;

    beforeEach(angular.mock.module("app"));

    beforeEach(angular.mock.module(function ($urlRouterProvider) {
        $urlRouterProvider.deferIntercept();
    }));

    beforeEach(inject(function (_licenseDataService_, $httpBackend) {
        licenseDataService = _licenseDataService_;
        httpBK = $httpBackend;
    }));

    it("Test License Key", function () {
        var returnData = {};

        httpBK.expectGET("http://localhost:8080/?command=print-spec").respond(returnData);

        var returnedPromise = licenseDataService.getLicenseSpecs();

        var result;
        returnedPromise.then(function (response) {
            result = response.data;
        });

        httpBK.flush();
    });
});

Любая помощь будет принята с благодарностью.

...