unit test 與 AsUnit 3.0 - 介紹 (1/3)
unit test在專業的軟體開發過程中一直是非常非常重要的一環,透過一個有系統的方式來檢測程式碼的正確度可說是軟體開發最低限度的要求。
但到目前為止,10 個flash coders裏大概有 11 個都是用唯一的一種方式來做所謂的 test : CTRL-Enter,也就是 test movie來執行電影,然後看看output panel裏有無出現錯誤。(呃,如果你不屬於這11個,並且已經在用某種 unit test framework,那請直接跳過這篇文章去做更有意義的事,例如補個眠)
傳統用 test movie做測試對付小型的專案還行有餘力,但當案子發展的越來越大,並且完全走向 class (OO)導向的開發方式時,這種做法就顯的費時費力且不切實際,另一方面,這種測試方法往往要等UI好了才比較能整合起來測試,但往往這時有些根本的錯誤已經種的太深很難再改了。
在java的世界裏,這個問題很早就獲得了解決,他們可以靠一個叫 JUnit的 testing framework 來自動化所有的測試工作,只要簡單的設定與編輯,就可以完整的測試所有class中的每一個method運作是否正常,並且更重要的是,這些test class可以做為日後改版或 refactoring時重要依據,例如每次改完程式碼或refactor一大段code blcok, 就重跑一次test,只要測試能過,就代表剛才做的改變沒問題。
在Flash的世界中其實也有類似JUnit的東西,幾個檯面上比較知名的(其實是也就只有這幾個啦)
-as2unit:
這是英國的 iteration:two顧問公司所發展的test framework,,as2unit的基礎架構是照者 JUnit翻版而來,但它只保留了幾個重要的部份,因此功能上不是非常完整。btw, 這家公司日前才剛被macromedia收購成為 Macromedia Europe Consulting (MEC)。
-as2lib:
這是最早期出現的一個全能型 library,裏面也包含了一個小型的 unit test library,但由於太冷門一直無法成為主流。
這也是 iteration:two推出的project,但主要是針對 flex 做 unit test,只是隨者 flex 2的出現(與伴隨而來的大改良),這個project結束的日子應該不遠了。
而本文要介紹的,則是由macromedia官方支援(金援)發展的正宗JUnit flash-port版:
asUnit也是一個open source的testing framework, 並且也存了在相當長一段時間,但由於一年前macromedia正式加入這個proejct,並且提供足夠的經費供他們做研發,因此他們順利的成為第一個支援Actionscript 3 的 testing framework。


Trackback this post | Subscribe to the comments via RSS Feed