Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 单元测试$http.get的奇数情况_Angularjs_Unit Testing - Fatal编程技术网

Angularjs 单元测试$http.get的奇数情况

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

整个故事都在1.5.5节

因此,我在$onInit函数上创建了一个组件及其控制器,该函数基本上包含此请求

            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后键入配置名称时,就能够以完全不同的布局启动应用程序。我必须为它写一个测试。