我有以下HTML代码:
<div id="main">
<form Id="search-form" action="/ViewRecord/AllRecord" method="post">
<div>
<fieldset>
<legend>Search</legend>
<p>
<label for="username">Staff name</label>
<input id="username" name="username" type="text" value="" />
<label for="softype"> software type</label>
<input type="submit" value="Search" />
</p>
</fieldset>
</div>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
以下Javascript代码(以JQuery作为库):
$(function() {
$("#username").click(function() {
$.getJSON("ViewRecord/GetSoftwareChoice", {},
function(data) {
// use data to manipulate other controls
});
});
});
Run Code Online (Sandbox Code Playgroud)
现在,如何测试$("#username").click以便对于给定的输入,它
ViewRecord/GetSoftwareChoice)function(data))行为正确吗?编辑:我阅读了QUnit示例,但他们似乎正在处理一个没有AJAX交互的简单场景.虽然有ASP.NET MVC示例,但我认为它们实际上是在测试服务器的输出到AJAX调用,即它仍在测试服务器响应,而不是AJAX响应.我想要的是如何测试客户端响应.
您可以使用函数调用替换您的匿名事件处理程序,然后您可以在测试中调用该函数.
而不是
$("#username").click(function() {
$.getJSON("ViewRecord/GetSoftwareChoice", {}, function(data) {
// use data to manipulate other controls
});
});
Run Code Online (Sandbox Code Playgroud)
你可以做点什么
function doSomething() {
$.getJSON("ViewRecord/GetSoftwareChoice", {}, function(data) {
// use data to manipulate other controls
});
}
$("#username").click(doSomething);
Run Code Online (Sandbox Code Playgroud)
然后在你的QUnit测试中你可以调用
doSomething();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4327 次 |
| 最近记录: |