
第九章
測試與除錯
每個程式設計師在開發系統時,多少都會進行各種程度不一的測試。即使只是手動執行
一下剛寫好的程式,也算得上是一種測試。不過本章的重點,是說明如何自動化測試
JavaScript 程式—也就是要教你如何撰寫一些可以自動執行的判斷式(assertion)。自動
化測試並不會降低程式裡的臭蟲(bug)數量,但它能大幅提昇程式的品質,並能確保
曾經出現過的臭蟲不會再度出現。目前市面上已經有許多書籍和教學文件,針對各種不
同的測試類型,提供了極為深入且精闢的解說。本章並不打算拾人牙慧,闡述這些重複
的內容(而且我應該也很難解釋的比他們還好)。本章的重點會放在測試 JavaScript 程
式時,一些和其他程式語言不同或需要特別注意的地方。
測試 JavaScript 程式的風氣仍不普及,很多 JavaScript 程式設計師其實都沒有撰寫測試
程式的習慣。我認為這主要應該是因為 JavaScript 的自動化測試實在是太難準備(要考
慮的測試環境範圍太廣)。以 jQuery 函式庫為例,它裡面就準備了數以百計的單元測試
程式,還有用大約十個不同的測試組合(test suites)來模擬它可能會遇到的各種不同執
行環境。所有的單元測試程式,都要分別在所有的測試組合中跑過一輪。先看看 jQuery
支援的瀏覽器有哪些:
• Safari:3.2、4、5、nightly
• Chrome:8、9、10、11
• Internet Explorer:6、7、8、9
• Firefox:2、3、3.5、