编写可测试的JavaScript代码

时间:2012-08-26 20:19:22

标签: javascript js-test-driver

我开始深入研究JavaScript的一些工作,并且我试图了解我应该如何编写可测试的JS代码。我的背景主要是Java,我很满意,但我没有JavaScript经验。经过一些阅读后,我将使用js-test-driver作为我的单元测试框架,但我也愿意接受建议。使用Java,我的方法总是把事情分解成接受某些东西并返回一些东西的小方法......借助JavaScript,我想我会采用类似的方法将任何DOM操作和实际逻辑分成两个独立的函数。例如:

function sumValues(valA, valB) {
return (valA + valB);
}

function displayResult(result) {
document.getElementById('result').innerHTML = 'result';
}

因此,任何业务逻辑都很容易测试。

我是在正确的轨道上还是有更好的办法?有关JS特定的这个主题的任何推荐阅读?感谢您的任何想法

1 个答案:

答案 0 :(得分:3)

将代码分解为逻辑单元当然仍然适用于JavaScript。至于你如何构建代码并组织可重用性,有许多不同的方法可供选择 - 这里列出的太多,也是个人偏好的问题。从原型继承到伪古典继承;使用backbone.jsangular.jsrequire.jsyuigoogle closure ......

等框架

关于您的示例,您可能会开始将代码分离为可单独测试的视图和控制器,并且只有视图操作DOM。我会查看backbone.js了解更多信息。

一本真正帮助我开始使用JavaScript进行测试驱动开发(同时也学习JavaScript)的书是Christian Johansen的Test-Driven JavaScript Development

我正在使用JsTestDriver,它是一款出色的软件,绝对可以使用。但在大规模使用之前我也会评估其他产品,因为最近JsTestDriver的开发进展非常缓慢。Buster.JS看起来很有希望。另一个有趣的跑步者是Testem,它允许您使用不同的测试框架,例如MochaJasmine

我还可以推荐Sinon.JS作为模拟工具包。