如何在编写 Qunit 测试用例时从 JS 文件调用 Jquery 模糊事件



我在JS文件中有自定义搜索.JS文件和内容,如下所示:

$(document).ready(function () {
$("#number_c").blur(function(){
toggle($("#number_c"),[$("#number_a"),$("#number_b")]);       
});
function toggle(input1, inputs) {
if (input1.val() != '' ) {
for (var i = 0; i < inputs.length; i++ ) {
input = inputs[i];
input.val('');
input.prop("disabled",true);
}
} else {
for (var i = 0; i < inputs.length; i++ ) {
input = inputs[i];
input.removeAttr("disabled");
}
}
}
});

HTML文件具有以下条目:

<label for="number_a">Number 1:</label>
<input type="text" id="number_a"><br>
<label for="number_b">Number 2:</label>
<input type="text" id="number_b"><br>
<label for="number_c">Number 3:</label>
<input type="text" id="number_c"><br>

我需要编写 Qunit 测试用例来调用模糊方法。我尝试在Qunit测试用例JS文件中触发模糊事件,但无法调用搜索.js模糊事件。请建议我怎么写。提前谢谢。

我试图将切换功能放在搜索中的 $(document(.ready 函数之外.js并在 Qunit 测试下方编写。此测试按预期返回,并能够调用切换函数。

QUnit.test("Verify number_b disabled field", function(assert) { $('#number_c').val('201');  
toggle($("#number_c"),[$("#number_a"),$("#number_b")]); 
//$('#result').focus(); 
assert.equal($('#number_b').prop("disabled"), true, 'expected number_b fields needs to be disabled'); });

但是,我正在尝试从我的search_test.js文件中调用搜索.js文件的模糊事件。我试图在我的search_test.js文件中使用 $('#number_c'(.trigger('blur'(; 触发,但这不起作用。

你不能在源代码文件之外调用toggle()函数,因为你已经把它包装在IIFE中(这是一件好事(。按原样测试源代码的唯一方法是从测试中触发blur事件。试试这个:

QUnit.test("Verify number_b disabled field", function(assert) { 
$('#number_c').val('201');  
$('#number_c').trigger('blur');  // this line "fakes" a blue event
assert.equal($('#number_b').prop("disabled"), true, 'expected number_b fields needs to be disabled'); });
});

最新更新