我正在测试一些客户端代码,我有以下片段:
<div class="onerow">
Sign ID: <input type="text" name="signId" id="signId" class="k-textbox" data-bind="value: siteId"/>
Width: <input type="text" name="width" id="width" class="k-textbox" data-bind="value: width"/>
Height: <input type="text" name="height" id="height" class="k-textbox" data-bind="value: height"/>
<input type="button" id="buttonsearch" value="Search" class="k-button" data-bind="events: {click: onSearchClick}"/>
</div>
在我的测试文件中,我使用jQuery为站点ID设置了一些默认值:
QUnit.asyncTest("List sites with set ID", function() {
expect(0);
$("#signId").val(13568);
setTimeout(function() {
$("#buttonsearch").click();
QUnit.start();
}, 1000);
}
但是,当页面加载时,应该包含&#34; 13586&#34;的函数调用而是空白:
...[field]:signId
...[operator]:=
...[value]:
此时,手动点击该按钮无效,为了使该功能再次起作用,我必须删除默认值,单击按钮,输入Sign ID的值再次然后按下按钮。
理想情况下,我希望它能够立即用于测试目的。我怎么能做到这一点?
**编辑:**
在我的主.js
文件中,我的ready()
函数中只有以下内容:
$(document).ready(function(){
$("#user-menu").kendoMenu();
kendo.bind($("#site-search"), siteSearchModel);
});
我的印象是,除了测试功能中的超时之外,绑定到实际站点的时间足以让所有内容都准备就绪。
第二次修改:
此外,如果我在我的QUnit测试功能中放置console.log($("#siteId").val());
,则会正确显示该值。可能会发生什么?