不要用TestCase的構造函數初始化Fixture而要用setUp()和tearDown()方法
不要依賴或假定測試運行的順序因為JUnit利用Vector保存測試方法所以不同的平台會按不同的順序從Vector中取出測試方法
避免編寫有副作用的TestCase例如如果隨後的測試依賴於某些特定的交易數據就不要提交交易數據簡單的會滾就可以了
對於我們來說有時是必須要提交以至於有副作用的
例如在執行插入後數據庫顯然會多出一條數據來那麼必須在隨後每個測試自己消除自己的副作用
在這裡就是自己再刪除剛插入的數據(這時候需要考慮到這個善後的工作不能自己就不能有副作用刪除多了其他的數據)
這裡的副作用還指影響到周圍環境因為我們現在工作的人比較多所以最好大家的測試服務器能夠分開來例如一個人一個Database實例(可以建得稍微小一點)或者一個人一個數據庫 注意將這些個人之間有區別的內容用常量在每個人自己的所有程序中公用而不是分布在各個位置 否則以後要改換測試服務器所有的程序都需要改動
為了保證測試程序能夠很容易的到處執行請保證大家的數據庫服務器的測試數據全部一致 否則就不能做到很容易得拿到FJ也可以很容易的運行所以需要准備測試數據集 包括Schema table stored procedure等數據庫對象的結構一致 還包括數據庫的數據內容保持一致
當繼承一個測試類時記得調用父類的setUp()和tearDown()方法
將測試代碼和工作代碼放在一起一邊同步編譯和更新(使用Ant中有支持junit的task)
測試類和測試方法應該有一致的命名方案如在工作類名前加上test從而形成測試類名
可能這裡我們需要改動將函數名和我們的測試用例的編號一致起來
確保測試與時間無關不要依賴使用過期的數據進行測試導致在隨後的維護過程中很難重現測試
如果你編寫的軟件面向國際市場編寫測試時要考慮國際化的因素不要僅用母語的Locale進行測試
盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法可以使代碼更為簡潔
這個內容有其關鍵assert語句的好壞直接影響到測試的正確性 因為assert就是用於當前測試項的正確性的
測試要盡可能地小執行速度快
)將所有的數據庫的測試數據用ODBC程序自動生成的 用戶可以簡單的修改ConnectionString然後運行程序就可以創建生成數據庫/數據庫表/存儲結構並且自動插入數據
)為了保證多個測試人員的不干擾建議分別各自單獨使用自己的數據庫否則會因為一個自己的錯誤影響別人的工作
)在自己的程序中所有涉及環境的內容都用單獨放到一個類中用static常量共享使用(這樣就便於很容易的更換環境再進行測試做到很容易的移植測試環境)
)關於數據庫表結構我建議測試表中含有一個主鍵我們在插入數據的時候保證測試用例測試用例程序測試用例程序中的數據這三者的編號一致起來便於出現問題時可以排除數據
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26279.html