Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/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
Javascript QUnit模拟自动完成_Javascript_Jquery Ui_Unit Testing_Qunit - Fatal编程技术网

Javascript QUnit模拟自动完成

Javascript QUnit模拟自动完成,javascript,jquery-ui,unit-testing,qunit,Javascript,Jquery Ui,Unit Testing,Qunit,在我的QUnit测试中,我想模拟自动完成方法(jQuery UI),但每次运行测试时,我都会这样做: test("Create_PassedContainer_RunsAutocompleteOnMatchingElement",function(){ var $matchingInput = $('<input data-autocomplete-url="some"/>'); var $dom = $('<div><input/></

在我的QUnit测试中,我想模拟自动完成方法(jQuery UI),但每次运行测试时,我都会这样做:

test("Create_PassedContainer_RunsAutocompleteOnMatchingElement",function(){
    var $matchingInput = $('<input data-autocomplete-url="some"/>');
    var $dom = $('<div><input/></div>');
    $dom.append($matchingInput);
    var autocompleteWasCalled = false;
    $matchingInput.autocomplete = function(){ autocompleteWasCalled = true; };

    new Autocomplete($dom);

    ok(autocompleteWasCalled,"Should call autocomplete.");
});
测试中的代码:

function Autocomplete($container) {
    var $self = this;

    this.Initialize = function($container) {
        $self.$container = $container;
        $self.$text = $('*[data-autocomplete-url]', $container);
        $self.$value = $('input[type="hidden"]', $container);

        $self.$text.autocomplete();
    };

    $self.Initialize($container);
};

一切都会有帮助的

自动完成是一个插件,请尝试以下操作:

var oldAutocomplete = $.fn.extend(true, {}, $.autocomplete);
$.autocomplete = function(){
    autocompleteWasCalled = true;
}

/// Other code...

$.fn.autocomplete = oldAutocomplete;

就是这样。非常感谢你!
var oldAutocomplete = $.fn.extend(true, {}, $.autocomplete);
$.autocomplete = function(){
    autocompleteWasCalled = true;
}

/// Other code...

$.fn.autocomplete = oldAutocomplete;