按键事件的 Javascript 测试用例

标签 javascript code-coverage qunit blanket.js

我的JS文件的代码如下:

 $('#HeaderLink').keypress(function (e) {

     var key = e.which;

     if (key == 13)        
     {

         TravelRegistration.expandSection();
     }
 });

当我运行以下 Javascript 测试用例(Qunitjs 和 Blanket.js)时,它运行成功,但无法调用“expandSection”函数。 代码覆盖率仅覆盖第一行代码 $('#HeaderLink').keypress(function (e) {

请有人协助如何编写测试用例,以便我可以调用我的函数。

测试用例代码

test("expandSection test", 1, function () {
    var div = $('<div>').appendTo("body");

    $('<a id="HeaderLink" >').appendTo(div);
    $("#HeaderLink").trigger("keypress" , 13);
    var result = TravelRegistration.expandSection();
    equal(undefined, result, "passed");
    $("div").remove();
});

最佳答案

您需要为其创建一个自定义 jQuery 事件:

var e = $.Event("keypress", { which: 13 });
$("#HeaderLink").trigger(e);

参见jQuery documentation为了它。

关于按键事件的 Javascript 测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39526794/

相关文章:

code-coverage - 有没有办法将两个 .gcda 文件合并为一个?

jquery - 我的 qUnit 测试套件需要许多不同的全页 DOM 示例

javascript - 搜索并替换 moduleFor ('foo:bar' ) 为 moduleFor ('foo:bar' , 'unit@foo:bar' )

javascript - 使用 HTTP GET 和 Google App Script 访问 Google 电子表格的标题

javascript - 如何使用 Node.js 在 mysql 上进行嵌套查询?

javascript - 如何使用电话号码作为搜索关键字来查找对象

javascript - ckeditor 自动删除空跨度

.net - Visual Studio Team System 2008 Developer Edition 上的代码覆盖率(在 NUnit 应用程序上)

android - Kotlin Jacoco 覆盖率未显示 Android 中的静态方法(伴侣)

javascript - 检查 qunit 中是否有两个异步调用