我们如何针对DOM操作执行单元测试?

jus*_*eve 15 jquery unit-testing qunit

netTuts.com上对QUnit的介绍产生了一个有趣的交换(从未解决),如何对操作DOM的操作应用单元测试.以下引用(亚历克斯约克)引起了关键:

如果您有这样的函数,那将是多么好的:

function add(a,b){var result = a + b; $("#输入ResultTestBox")VAL(结果).

在上面的测试中,我想测试两件事:添加a和b,并将结果正确地放入DOM元素中.我想通过提供一些模拟HTML来测试第二件事.可能?

但是,就像我说的......没有解决.可分解?

Cha*_*son 20

最新版本的QUnit支持一个#qunit-fixture元素,允许您将HTML添加到QUnit网页.

例如,在您的HTML中:

<ol id="qunit-tests"></ol>
<div id="qunit-fixture">test markup, will be hidden</div>
Run Code Online (Sandbox Code Playgroud)

在你的JavaScript中:

$('<input id="ResultTestBox" type="text"/>').appendTo('#qunit-fixture');
var result = add(a, b);

equals(result, $('input#ResultTestBox').val(), "testing result box value");
Run Code Online (Sandbox Code Playgroud)

  • @Tushar取决于您使用的26个单元测试定义中的哪一个.只要测试可以彼此独立运行,它们就可以根据某些定义进行单元测试.(例如在Kent Beck的"测试驱动开发示例"一书中) (2认同)