Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Qunit中使用夹具进行事件测试_Javascript_Jquery_Qunit - Fatal编程技术网

Javascript 在Qunit中使用夹具进行事件测试

Javascript 在Qunit中使用夹具进行事件测试,javascript,jquery,qunit,Javascript,Jquery,Qunit,我使用fixture,这意味着我的标记是在我测试的JS运行之后生成的。这意味着如果我有$('.something')。单击()该事件永远不会被映射,因为Qunit还没有运行来创建”。因此我的原始JS无法找到该元素来正确绑定该事件 我找到了两种解决方案: 1。在我的设备旁边硬编码我的标记 <!-- FIXTURES --> <div id="qunit-fixture"></div> <button class="btn-warning">text&

我使用fixture,这意味着我的标记是在我测试的JS运行之后生成的。这意味着如果我有
$('.something')。单击()该事件永远不会被映射,因为Qunit还没有运行来创建”。因此我的原始JS无法找到该元素来正确绑定该事件

我找到了两种解决方案:

1。在我的设备旁边硬编码我的标记

<!-- FIXTURES -->
<div id="qunit-fixture"></div>
<button class="btn-warning">text</button>

文本
2.将我的事件JS添加到我的单元测试中

var $fixture = $('#qunit-fixture');
$fixture.append('<button class="btn-warning">');
$('btn-warning').click(// Run Stuff);
// Test Code
var$fixture=$('quonitfixture');
$fixture.append(“”);
$('btn-warning')。单击(//运行文件);
//测试代码
在我看来,这两种选择都不是好的做法。第一种更可取,因为它可以将事物分开,但很容易变得臃肿。第二个问题的原因很明显,因为我不再测试我实际使用的代码

这是一把小提琴,上面有一个功能部件


这可能吗?什么是最佳实践?

我想您可以使用委托绑定元素,并将fixture注入文档,否则您将需要能够在fixture的上下文中传递,以便代码绑定工作。单击方法有点老派,我建议改为研究on方法@gillesc谢谢你的回复。如果要委派,则没有任何父节点可委派给使用装置的人员。接下来是文件。也许我是误会了。我同意。关于vs.。点击。我用它只是为了简洁。可能是重复的