我开始深入研究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特定的这个主题的任何推荐阅读?感谢您的任何想法
答案 0 :(得分:3)
将代码分解为逻辑单元当然仍然适用于JavaScript。至于你如何构建代码并组织可重用性,有许多不同的方法可供选择 - 这里列出的太多,也是个人偏好的问题。从原型继承到伪古典继承;使用backbone.js,angular.js,require.js,yui,google closure ......
等框架关于您的示例,您可能会开始将代码分离为可单独测试的视图和控制器,并且只有视图操作DOM。我会查看backbone.js了解更多信息。
一本真正帮助我开始使用JavaScript进行测试驱动开发(同时也学习JavaScript)的书是Christian Johansen的Test-Driven JavaScript Development。
我正在使用JsTestDriver,它是一款出色的软件,绝对可以使用。但在大规模使用之前我也会评估其他产品,因为最近JsTestDriver的开发进展非常缓慢。Buster.JS看起来很有希望。另一个有趣的跑步者是Testem,它允许您使用不同的测试框架,例如Mocha和Jasmine。
我还可以推荐Sinon.JS作为模拟工具包。