2

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

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

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

因此,任何业务逻辑都可以轻松测试。

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

4

1 回答 1

3

当然,将代码分解为逻辑单元仍然适用于 JavaScript。至于您将如何准确地构建代码和组织可重用性,有许多不同的方法可供选择 - 太多无法在此处列出,也取决于个人喜好。从原型继承,到伪经典继承;使用框架,如骨干.js ,angular.jsrequire.jsyuigoogle 闭包......

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

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

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

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

于 2012-08-28T08:07:23.160 回答