jinfeng_wang

          G-G-S,D-D-U!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
          1. 不要用TestCase的構(gòu)造函數(shù)初始化Fixture,而要用
          setUp()和tearDown()方法。

          2. 不要依賴或假定測試運行的順序,因為JUnit利用
          Vector保存測試方法。所以不同的平臺會按不同的
          順序從Vector中取出測試方法。

          3. 避免編寫有副作用的TestCase。例如:如果隨后的
          測試依賴于某些特定的交易數(shù)據(jù),就不要提交交易數(shù)
          據(jù)。簡單的會滾就可以了。


          ? 對于我們來說,有時是必須要提交,以至于有副作用的。
          ? 例如:在執(zhí)行“插入“后,數(shù)據(jù)庫顯然會多出一條數(shù)
          據(jù)來。那么必須在隨后每個測試自己消除自己的副
          作用。
          ??在這里,就是自己“再刪除剛插入的數(shù)據(jù)”。(這時候
          需要考慮到這個善后的工作不能自己就不能有副作用,
          ? 刪除多了其他的數(shù)據(jù))。
          ?
          ? 這里的副作用還指“影響到周圍環(huán)境”,因為我們現(xiàn)
          在工作的人比較多,所以最好大家的測試服務(wù)器能夠
          分開來,
          ?例如一個人一個Database實例(可以建得稍微小一
          點)或者一個人一個數(shù)據(jù)庫,
          ? 注意將這些個人之間
          有區(qū)別的內(nèi)容用常量在每個人自己的所有程序中公
          用。而不是分布在各個位置。
          ? 否則以后要改換測試
          服務(wù)器,所有的程序都需要改動。
          ?
          ? 為了保證測試程序能夠很容易的到處執(zhí)行,請保證
          大家的數(shù)據(jù)庫服務(wù)器的測試數(shù)據(jù)全部一致。
          ?否則,
          就不能做到很容易得拿到FJ也可以很容易的運行,
          所以需要準(zhǔn)備“測試數(shù)據(jù)集“。
          包括:Schema ,table ,
          stored procedure等數(shù)據(jù)庫對象的結(jié)構(gòu)一致,
          ?還包
          括數(shù)據(jù)庫的數(shù)據(jù)內(nèi)容保持一致。

          4. 當(dāng)繼承一個測試類時,記得調(diào)用父類的setUp()和
          tearDown()方法。

          5. 將測試代碼和工作代碼放在一起,一邊同步編譯
          和更新。(使用Ant中有支持junit的task.)

          6. 測試類和測試方法應(yīng)該有一致的命名方案。如在
          工作類名前加上test從而形成測試類名。
          可能這里我們需要改動,將函數(shù)名和我們的測試用
          例的編號一致起來。

          7. 確保測試與時間無關(guān),不要依賴使用過期的數(shù)據(jù)
          進行測試。導(dǎo)致在隨后的維護過程中很難重現(xiàn)測試。

          8. 如果你編寫的軟件面向國際市場,編寫測試時要
          考慮國際化的因素。不要僅用母語的Locale進行測試。

          9. 盡可能地利用JUnit提供地assert/fail方法以及
          異常處理的方法,可以使代碼更為簡潔。
          ?
          這個內(nèi)容有其關(guān)鍵,assert語句的好壞直接影響
          到測試的正確性。
          因為assert就是用于當(dāng)前測試
          項的正確性的。

          10.測試要盡可能地小,執(zhí)行速度快。


          ==========
          1)將所有的數(shù)據(jù)庫的測試數(shù)據(jù)用ODBC程序自動
          生成的。 用戶可以簡單的修改ConnectionString,
          然后運行程序,就可以創(chuàng)建生成數(shù)
          據(jù)庫/數(shù)據(jù)庫
          表/存儲結(jié)構(gòu)
          ,并且自動插入數(shù)據(jù)。
          ?
          ?? 2)為了保證多個測試人員的不干擾,建議分別
          各自單獨使用自己的數(shù)據(jù)
          庫。否則會因為一個自
          己的錯誤,影響別人的工作。
          ?
          ?? 3)在自己的程序中,所有涉及環(huán)境的內(nèi)容都用
          單獨放到一個類中,用static
          常量共享使用(這樣
          就便于很容易的更換環(huán)境再進行測試,做到很容
          易的移植
          測試環(huán)境)。
          ?
          ?? 4)關(guān)于數(shù)據(jù)庫表結(jié)構(gòu),我建議測試表中含有一
          個主鍵,我們在插入數(shù)據(jù)的時
          候,保證測試用例,
          測試用例程序,測試用例程序中的數(shù)據(jù),這三者
          的編號一
          致起來。便于出現(xiàn)問題時,可以排除數(shù)據(jù)。
          posted on 2006-05-28 15:52 jinfeng_wang 閱讀(1580) 評論(0)  編輯  收藏 所屬分類: javaThinkingJunitview.Net
          主站蜘蛛池模板: 怀远县| 奈曼旗| 叙永县| 光山县| 博野县| 佛坪县| 新余市| 灵丘县| 大英县| 铜陵市| 伊川县| 时尚| 宁远县| 定兴县| 晋宁县| 叶城县| 皋兰县| 时尚| 葵青区| 淳化县| 茌平县| 十堰市| 云梦县| 邵阳县| 随州市| 彭州市| 德庆县| 嘉荫县| 交城县| 丹江口市| 伊吾县| 曲麻莱县| 鲁甸县| 花莲市| 衡东县| 项城市| 延安市| 瑞丽市| 长岭县| 威信县| 弥勒县|