TestCase("Temperature conversion", { setUp : function () { this.celsius1 = 20; this.celsius2 = 30; this.fahrenheit1 = 68; this.fahrenheit2 = 86; }, testConversionCtoF: function () { assertSame(this.fahrenheit1, convertFromCelsiusToFahrenheit(this.celsius1)); assertSame(this.fahrenheit2, convertFromCelsiusToFahrenheit(this.celsius2)); }, testConversionFtoC: function () { assertSame(this.celsius1, convertFromFahrenheitToCelsius(this.fahrenheit1)); assertSame(this.celsius2, convertFromFahrenheitToCelsius(this.fahrenheit2)); } }); |
清单18中的代码与YUI版本的差别不大,JSTD使用 TestCase()函数来定义测试用例。如清单18中的内容,你可以使用内联声明来定义测试方法,或者可以子类化TestCase实例的原型,SetUp()和tearDown()方法对于每个测试用例来说都是可用的。
若要运行这些测试,只需执行下面的命令:
java -jar JsTestDriver-1.3.3d.jar --tests all
图4显示的是终端上的输出
图4. JSTD的测试结果
测试在之前捕获的所有浏览器中都通过(Chrome 15、Safari 5和Firefox 7)。
JSTD也可以很好地和你首选的持续集成系统整合在一起,成为持续构建的一部分。其提供了与诸如Eclipse(插件)或 TextMate(包)一类的IDE之间的集成。
结束语
随着当前对Web应用客户端的看重,JavaScript代码的单元测试就成为了一件很重要的事情。有几个框架可用来帮助你完成这一任务,本文研究了其中三个最受欢迎的框架:QUnit、YUI Test和JSTestDriver。
1. QUnit,非常简单,是一个很好的入门框架。
2. YUI Test是一个完整的工具,适合熟悉YUI库的人。
3. JSTestDriver是一个非常不错的框架,可用来在多个浏览器中运行测试。
原文转自:http://www.uml.org.cn/Test/201301152.asp