我在JS文件中有自定义 search.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文件中触发模糊事件,但无法调用search.js模糊事件。请建议我如何写。谢谢提前。
我试图在search.js文件中的$(document).ready函数之外放置切换函数,并在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文件中调用search.js文件的模糊事件。我尝试在我的search_test.js文件中使用 $('#number_c')。触发器('模糊'); 触发但这不起作用。
答案 0 :(得分:0)
您无法在源代码文件之外调用toggle()
函数,因为您已将其包装在IIFE中(这是一件好事)。您可以测试源代码的唯一方法是从测试中trigger a blur
event。试试这个:
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'); });
});