我正在使用固定装置,这意味着我的标记是在我正在测试运行的 JS 之后生成的。这意味着如果我有$('.something').click();
那个事件永远不会被映射,因为 Qunit 还没有运行来创建“.something”所以我原来的 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
这些选项中的任何一个对我来说似乎都不是好的做法。第一个更可取,因为它将事物分开,但很容易变得臃肿。第二个引入问题的原因很明显,因为我不再测试我实际使用的代码。
这是一个功能演示的小提琴
这可能吗?什么被认为是最佳实践?