Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Unit testing 在不使用jQuery的情况下模糊字段_Unit Testing_Angularjs_Jqlite - Fatal编程技术网

Unit testing 在不使用jQuery的情况下模糊字段

Unit testing 在不使用jQuery的情况下模糊字段,unit-testing,angularjs,jqlite,Unit Testing,Angularjs,Jqlite,我想(单元)测试我的AngularJS应用程序,而不用使用jQuery,因为jQuery将取代jqLite,而在真正的应用程序中jQuery也不可用。 jQuery和jqLite之间确实存在差异,因此在单元测试中让jQuery可用于AngularJS是一种风险 现在,我的大多数测试在没有jQuery的情况下都可以正常工作,但我需要模糊一个字段,我只能找到如何使用jQuery。我将如何以跨浏览器的方式在Javascript中实现这一点 更新:收到答案后,我使用triggerHandler()解决了

我想(单元)测试我的AngularJS应用程序,而不用使用jQuery,因为jQuery将取代jqLite,而在真正的应用程序中jQuery也不可用。 jQuery和jqLite之间确实存在差异,因此在单元测试中让jQuery可用于AngularJS是一种风险

现在,我的大多数测试在没有jQuery的情况下都可以正常工作,但我需要模糊一个字段,我只能找到如何使用jQuery。我将如何以跨浏览器的方式在Javascript中实现这一点

更新:收到答案后,我使用triggerHandler()解决了它,但不是在指令本身中,而是在单元测试中,如下所示:

it("should set the blur state on blur", function() {
    angular.element(elm[0][0]).triggerHandler("blur");
    expect($rootScope.passwordblur).toBe(true);
});

为什么不试试指令:

app.directive('blurable', function () {        
        return {
            link: function(scope, element) {               
                element.bind("blur" , function(e){
                    // blur happens
                });
                scope.triggerBlur = function(){
                    element.triggerHandler("blur");
                }
            }
        }
    });
因此,现在在您的
范围内
可以运行此
触发模糊
方法进行“手动”模糊。

Plunk:

为什么不试试指令:

app.directive('blurable', function () {        
        return {
            link: function(scope, element) {               
                element.bind("blur" , function(e){
                    // blur happens
                });
                scope.triggerBlur = function(){
                    element.triggerHandler("blur");
                }
            }
        }
    });
因此,现在在您的
范围内
可以运行此
触发模糊
方法进行“手动”模糊。

Plunk:

不错,以前从未见过该功能@Maarten,但我不知道这种风格在单元测试环境中是否是一种好的实践……我认为它应该是可以的;该装置通过一个真实事件进行测试,只模拟了触发器,但模拟结果与存根等有一定的一致性。。。如果其他人不这么认为,请让我知道尼斯,以前从未见过该功能@Maarten,但我不知道这种风格在单元测试环境中是否是一种好的实践……我认为它应该是可以的;该装置通过一个真实事件进行测试,只模拟了触发器,但模拟结果与存根等有一定的一致性。。。如果其他人不这么认为,请告诉我您也可以使用angular UI@您也可以使用angular UI@