测试角度js指令?

时间:2015-02-09 14:30:22

标签: javascript angularjs testing

您将如何测试此角度测试指令?

$scope.cancel = function () {
             $('#pp_bsktexit').modal('show');
}; 

这样的东西,我可以测试,它似乎也不是:

var nextScreenPath ='C_HIST';

$scope.goBack = function() {                
            //sessionService.save($scope.sessionData);              
            $location.path(nextScreenPath);
}

和测试:

it('should return location path as nextScreenPath', function(){
            var nextScreenPath = 'C_HIST';
            expect($location.path()).toEqual('');
            scope.goBack();
            expect($location.path()).toEqual('/' + nextScreenPath);

});

但我无法完全转移逻辑/知识来测试原始查询。有人有任何想法吗?我需要嘲笑一些东西吗?

1 个答案:

答案 0 :(得分:0)

所以看起来你直接使用jQuery会让它成为模拟的问题。

你应该做的是使用 angular.element ,如果它存在,它将在幕后自动使用jQuery。

然后在您的测试指令中,您通常会使用间谍:

spyOn(元素,'')。

有几种spyOn方法,用于返回固定值或调用伪函数。看一下间谍的茉莉花文档:

http://jasmine.github.io/2.0/introduction.html#section-Spies