javascript - AngularJS + Karma-Jasmine:意外请求 + UI 路由器
问题描述
我正在尝试在 Karma-Jasmine 的帮助下对 AngularJS HTTP 服务进行单元测试。但我面临来自 Karma 的以下错误:
Error: Unexpected request: GET app/license/license.html
我用谷歌搜索发现它与ui-router有关。以下 StackOverflow 链接:(UI-router interfers with $httpbackend unit test, 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();
});
});
任何帮助将不胜感激。
解决方案
推荐阅读
- r - 使用 ggplot2 geom_point() 绘制二进制(存在/不存在)数据
- css - 是否可以创建一个仅通过单击打开和关闭并在鼠标离开时关闭的纯 CSS 菜单?
- python - 我想将 TextInput 转换为 int var
- php - 在 Yocto 中启用 php intl 扩展
- anypoint-studio - 如何在 anypoint studio 中显示 RAML 文件中的特定记录?
- ssl - Lets Encrypt 的 SSL 不适用于 www 子域
- algorithm - 如何使用 trie(或后缀 trie)生成所有回文子串?
- sql-server - 使用 VB NET、SQL Server 在两个日期之间搜索
- laravel - 有没有办法在 Laravel 中静默中止创建模型?
- asp.net-core - 子文件夹中的图像未部署