我一直在研究JavaScript测试套件,发现QUnit非常有趣。我知道如何测试计算代码,但是...
如何测试主要用于DOM操作的JavaScript应用程序?
似乎测试DOM元素的位置/颜色等是无意义的,因为最终你会像这样做:
$("li.my_element").css("background-color", "#f00");
然后在你的测试中...
$(function() {
module("coloring");
test("test_my_element", function() {
var li_element_color = $("li.my_element").css('background-color');
equals(li_element_color, "#f00");
});
});
这感觉不太对,因为它基本上只是在做这个:
var my_li= $("li.my_element");
my_li.css("background-color", "#f00");
if ( my_li.css("background-color") == "#f00" ) {
return true;
}
我疯了吗?这应该怎么做?
编辑:问题的核心:
我想说的是,我需要确保代码在部署之前没有问题,但其中绝大部分都是 UI 帮助程序和 ajax。如何测试是否正确显示事物?
几个示例:
- 测试 JQuery UI 对话框是否出现在所有其他元素上方。
- 测试拖放功能是否正常工作。
- 测试当元素被拖放到可放置区域时,可放置区域的颜色是否会改变。
- 测试 ajax 是否全部正常工作。
- 测试是否存在可能会破坏 IE 的多余逗号。
css('foo')
返回元素计算出的样式。因此,尽管您可能设置为“#f00”,但您将获取“#ff0000”。 - Crescent Freshcss
)进行了非常详细的单元测试。 - kangax