角度业力测试控制器

时间:2016-08-24 06:30:16

标签: angularjs karma-jasmine

我试图找出这些业力测试来测试我的Angular应用。我可以搞清楚简单的事情。但我遇到连接到我的数据库的问题。

我想在下面的控制器中测试$ scope.getMultipleOptions函数:

$scope.options = [];

$scope.getMultipleOptions("form_field_1", $scope.options);

$scope.getMultipleOptions = function (key, opts) {
    var id = key.replace("form_field_", "");

    var promise = DynamicFormFactory.GetData('/DynamicForm/GetMultipleOptions?form_field_id=" + id);

    promise.then(
        function (success) {
        angular.forEach(success, function (o) {
            opts.push(o);
        });
        },
        function (error) {
        // Error
        }
    );
    }

这就是我的工厂/服务的样子:

dynamicFormApp.factory('DynamicFormFactory', ['$http', function ($http) {
        return {
            GetData: function (url) {
                return $http.get(url)
                        .then(function (response) {
                            return response.data;
                        }, function (error) {
                            return error;
                        });
            }
}]);

这就是我为设置业力考试所做的工作

describe('DynamicFormController', function () {

    beforeEach(module('dynamicFormApp'));

    var $controller;
    var $rootScope;

    beforeEach(inject(function (_$controller_, _$rootScope_) {
        // The injector unwraps the underscores (_) from around the parameter names when matching
        $controller = _$controller_;
        $rootScope = _$rootScope_;
    }));


    describe('$scope.getMultipleOptions', function () {
        var $scope, controller;

        beforeEach(function () {
            $scope = $rootScope.$new();

            controller = $controller('DynamicFormController', { $scope: $scope });
            $scope.fields = [];
        });

        it('$scope.getMultipleOptions', function () {
            var key = "form_field_15";

            var expectedResult = [{ desc: "DESCRIPTION", id: "ID" }];

            $scope.getMultipleOptions(key, $scope.fields);

            expect($scope.fields).toEqual(expectedResult);
        });


    });

});

测试始终失败,因为$ scope.fields始终为空。我该怎么做?

0 个答案:

没有答案
相关问题