编写可测试的JavaScript代码

Writing testable JavaScript code

本文关键字:JavaScript 代码 测试      更新时间:2023-09-26

我开始深入研究JavaScript的一些工作,并试图了解如何编写可测试的JS代码。我的背景主要是Java,我对它很熟悉,但我没有JavaScript经验。经过一些阅读,我打算使用js测试驱动程序作为我的单元测试框架,但我也愿意接受这里的建议。对于Java,我的方法一直是将事物分解为一些小方法,这些小方法接受一些东西并返回一些东西。。。使用JavaScript,我想我会采取类似的方法,将任何DOM操作和实际逻辑分离为两个单独的函数。例如:

function sumValues(valA, valB) {
return (valA + valB);
}
function displayResult(result) {
document.getElementById('result').innerHTML = 'result';
}

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

我在这方面走对了吗?还是有更好的做事方式?关于这个主题,有没有JS特有的推荐读物?感谢您的任何想法

将代码分解为逻辑单元当然仍然适用于JavaScript。至于如何构建代码和组织可重用性,有很多不同的方法可供选择——太多了,无法在这里列出,这也是个人偏好的问题。从原型继承,到伪古典继承;使用backbone.js、angular.js、require.js、yui、googleclosure等框架。。。

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

Christian Johansen的《测试驱动的JavaScript开发》一书真正帮助我开始了JavaScript的测试驱动开发(同时也了解了JavaScript)。

我正在使用JsTestDriver,这是一个很棒的软件,绝对很好用。但在大规模使用它之前,我也会评估其他产品,因为JsTestDriver的开发最近进展非常缓慢。。Buster.JS看起来很有希望。另一个有趣的运行程序是Testem,它允许您使用不同的测试框架,如Mocha和Jasmine。

我也可以推荐Sinon.JS作为嘲讽工具包。