From Gossip@caterpillar

Ajax Gossip: 簡介 JsUnit

在Ajax應用程式中,JavaScript所撰寫的程式規模不同於以往簡單的特效網頁程式,隨著程式規模的增大,維護的需求就漸形重要,對於將來程式的修改與修改後功能的運行無誤之保證,有賴於一個良好的測試系統。

在Java的領域中,有 JUnit 單元測試框架,並鼓勵開發人員進行測試驅動開發(Test-Driven Development),也就是鼓勵開發人員在撰寫程式之前,先為程式撰寫測試,之後程式以通過測試為目標,在程式完成之時,測試也跟著完成,測試案例本身也就相當於設計文件,由於有了測試案例,將來程式的修改,也有了既定的目標,也就是修改過後的程式,可以利用測試案例,確認原來的功能沒有被破壞,這也鼓勵程式開發人員為程式進行重構,改善程式的設計,而不會畏懼修改程式。

更進一步的,如果有一個好的測試框架之協助,您可以將測試自動化,而不用人工判斷執行結果是否正確,甚至您可以自動產生測試報告,有了 JUnit 之類的測試框架,程式的撰寫、測試案例的執行都變的簡單而有效率,開發人員也可以從測試結果中得到回饋,即時的得到程式設計後的成果。

綜合以下 ,測試驅動的好處是:
  • 目標明確:程式以通過測試為目標
  • 文件化:測試案例本身也就相當於設計文件
  • 鼓勵重構:開發人員勇於改善程式設計
  • 自動化:測試自動化、報告自動化
  • 得到回饋:即時的得到程式設計後的成果

在JavaScript的領域中,有個類似 JUnit 的測試工具 JsUnit,其觀念與使用上與 JUnit 都十分類似。



上圖中,是一個測試正在進行中的範例,由JsUnit的testRunner.html運行Test Runner,測試的頁面是jsUnitAssertionTests.html,如果測試過程中的案例通過,則會以綠色表示,如果有測試案例失敗,則會 以紅色表示,以視覺化的方式提供測試是否成功,如果有任何的錯誤或失敗,則會顯示在Errors and failures中。