Я пытаюсь провести модульное тестирование 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();
});
});
Любая помощь будет принята с благодарностью.