Angularjs 单元测试$http.get的奇数情况
整个故事都在1.5.5节 因此,我在$onInit函数上创建了一个组件及其控制器,该函数基本上包含此请求Angularjs 单元测试$http.get的奇数情况,angularjs,unit-testing,Angularjs,Unit Testing,整个故事都在1.5.5节 因此,我在$onInit函数上创建了一个组件及其控制器,该函数基本上包含此请求 apphelper.readFromConfig($http).then(function (config) {...}); Iam获取的[$http:badreq]http请求配置url必须是字符串错误 apphelper是一个典型的javascript闭包函数,几个不同的应用程序使用它来获得预定义的ajax调用,它如下所示 var apphelper = fun
apphelper.readFromConfig($http).then(function (config) {...});
Iam获取的[$http:badreq]http请求配置url必须是字符串错误
apphelper是一个典型的javascript闭包函数,几个不同的应用程序使用它来获得预定义的ajax调用,它如下所示
var apphelper = function () {
var config;
return {
readFromConfig: function ($http) {
return $http.get(this.getConfig()).
then(function (response) {
return response.data;
});
},
setConfig: function (_config) {
config = _config;
},
getConfig: function () {
return config;
}
}
} ();
现在是非常奇怪的部分
setConfig()在工厂内启动
app.factory('session', function GetSession($http, $q) {
return {
getConfig: function (configuration) {
var defer = $q.defer();
if (!configuration) {
configuration = "default";
}
$http({
url: "/config/" + configuration,
method: "GET",
data: "{}",
headers: { 'Content-Type': 'application/json' }
}).success(function (data, status, headers, config) {
//staff
apphelper.setConfig("/config/" + configuration);
defer.resolve('done');
}).error(function (data, status, headers, config) {
console.log(data);
defer.reject();
});
return defer.promise;
}
}
});
这家工厂是从routeprovider被解雇的
app.config(['$routeProvider',
function ($routeProvider) {
$routeProvider.
when('/:config', {
templateUrl: 'partials/components/my-map.html',
controller: 'MapController',
resolve: {
configData: function (session, $route) {
return session.getConfig($route.current.params.config);
}
}
});
}]);
所有这些故事都有两个原因
- 首先,我得到了一个指令,在初始化dom(从而解析)之前需要一些值
- 其次,我需要在加载页面组件时检查配置服务中是否有任何更改
尽管它看起来很奇怪,但它确实有效。现在我不知道如何对这个东西进行单元测试。我正在做的事情和它的工作将得到任何帮助。这样,当用户在应用程序url后键入配置名称时,就能够以完全不同的布局启动应用程序。我必须为它写一个测试。