QUnit - 测试插件方法调用、通用语句等
QUnit - testing plugin method calls, generic statements, etc
需要知道的几件事:
- 我的应用大量使用
- jQuery
- jQuery 插件(jQuery UI、已选择、数据表等)
- Bootstrap
所以我是 JS 单元测试的新手,可能听起来很蹩脚,但我有以下几个问题:
我最近启动了 qUnit 来测试我的 JS 代码,并使用 blanket.js 进行代码覆盖。
Blanket JS 输出显示这样的代码未被覆盖。我想知道 how/what 我可以做些什么来覆盖它们吗?
Example 1
function resetForm(form) {
form.reset(); // This line shows not covered
}
Example 2
$('a.staticLink').on('click', function(e) {
e.preventDefault();// This line shows not covered
});
类似地,所有通用 bootstrap 函数如 show()、hide() 显示为未涵盖。
即使是只有插件调用的语句也显示为未覆盖
$(".chosen-select").chosen(); //not covered
非常感谢任何帮助
您需要做的是在您的测试用例中手动触发事件。对于示例 2,如下所示
$('a.staticLink').trigger('click');
并根据单击该按钮后应该发生的情况编写断言。您可能会考虑使用 sinon
stubbing
外部方法
需要知道的几件事:
- 我的应用大量使用
- jQuery
- jQuery 插件(jQuery UI、已选择、数据表等)
- Bootstrap
所以我是 JS 单元测试的新手,可能听起来很蹩脚,但我有以下几个问题:
我最近启动了 qUnit 来测试我的 JS 代码,并使用 blanket.js 进行代码覆盖。
Blanket JS 输出显示这样的代码未被覆盖。我想知道 how/what 我可以做些什么来覆盖它们吗?
Example 1
function resetForm(form) {
form.reset(); // This line shows not covered
}
Example 2
$('a.staticLink').on('click', function(e) {
e.preventDefault();// This line shows not covered
});
类似地,所有通用 bootstrap 函数如 show()、hide() 显示为未涵盖。
即使是只有插件调用的语句也显示为未覆盖
$(".chosen-select").chosen(); //not covered
非常感谢任何帮助
您需要做的是在您的测试用例中手动触发事件。对于示例 2,如下所示
$('a.staticLink').trigger('click');
并根据单击该按钮后应该发生的情况编写断言。您可能会考虑使用 sinon
stubbing
外部方法