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