vendredi 31 juillet 2015

How to create unit-testing for array function in AngularJS with Jasmine

I have xf array: var xf = []; And I have a function is a element in this array and a function to use it:

$scope.checkEmailValid = function () {
                var result = false;
                Iif (xf.validateEmail($scope.email, '256')) {
                    result = true;
                }
                return result;
            };

xf.validateUsername = function (sText) {
            var isValid = false;

            do {
                //    Check for valid string.
                isValid = typeof sText === 'string';
                if (!isValid) {
                    break;
                }

                //  Check that each special character does not exist in string.
                for (var i = 0; i < sText.length; i++) {
                    if (xf.SPECIAL_CHARS.indexOf(sText.charAt(i)) !== -1) {
                        isValid = false;
                        break;
                    }
                }

                if (!isValid) {
                    break;
                }

            } while (false);

            return isValid;
        };

But when i run my spec:

it ('checkEmail', function(){
     $controller('MyCtrl', { $scope: $scope });
     xf.validateUsername();
     spyOn(window,xf.validateUsername).and.callThrough();
});

It make error:

xf.validateUsername is not a function

How can I cover it?

Aucun commentaire:

Enregistrer un commentaire