JUnit最佳實踐

2021-03-31 08:56:29 字數 1210 閱讀 4607

junit最佳實踐

cherami

轉貼  (參與分:20053,專家分:4960)   發表:2003-9-16 下午7:57   版本:1.0   閱讀:3899

martin fowler說過:「當你試圖列印輸出一些資訊或除錯乙個表示式時,寫一些測試**來替代那些傳統的方法。」一開始,你會發現你總是要建立一些新的fixture,而且測試似乎使你的程式設計速度慢了下來。然而不久之後,你會發現你重複使用相同的fixture,而且新的測試通常只涉及新增乙個新的測試方法。 

你可能會寫許多測試**,但你很快就會發現你設想出的測試只有一小部分是真正有用的。你所需要的測試是那些會失敗的測試,即那些你認為不會失敗的測試,或你認為應該失敗卻成功的測試。 

我們前面提到過測試是乙個不會中斷的過程。一旦你有了乙個測試,你就要一直確保其正常工作,以檢驗你所加入的新的工作**。不要每隔幾天或最後才執行測試,每天你都應該執行一下測試**。這種投資很小,但可以確保你得到可以信賴的工作**。你的返工率降低了,你會有更多的時間編寫工作**。 

不要認為壓力大,就不寫測試**。相反編寫測試**會使你的壓力逐漸減輕,應為通過編寫測試**,你對類的行為有了確切的認識。你會更快地編寫出有效率地工作**。下面是一些具體的編寫測試**的技巧或較好的實踐方法: 

1. 不要用testcase的建構函式初始化fixture,而要用setup()和teardown()方法。 

2. 不要依賴或假定測試執行的順序,因為junit利用vector儲存測試方法。所以不同的平台會按不同的順序從vector中取出測試方法。 

3. 避免編寫有***的testcase。例如:如果隨後的測試依賴於某些特定的交易資料,就不要提交交易資料。簡單的會滾就可以了。 

4. 當繼承乙個測試類時,記得呼叫父類的setup()和teardown()方法。 

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

6. 測試類和測試方法應該有一致的命名方案。如在工作類名前加上test從而形成測試類名。 

7. 確保測試與時間無關,不要依賴使用過期的資料進行測試。導致在隨後的維護過程中很難重現測試。 

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

9. 盡可能地利用junit提供地assert/fail方法以及異常處理的方法,可以使**更為簡潔。 

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

JUnit最佳實踐

1.不要用testcase的建構函式初始化fixture,而要用setup 和teardown 方法。2.不要依賴或假定測試執行的順序,因為junit利用vector儲存測試方法。所以不同的平台會按不同的順序從vector中取出測試方法。3.避免編寫有 的testcase。例如 如果隨後的測試依賴於...

最佳實踐 Flutter 最佳實踐

最佳實踐是乙個領域可以接受的專業標準,對於任何程式語言來說,提高 質量 可讀性 可維護性和健壯性都非常重要。讓我們探索一些設計和開發flutter應用程式的最佳實踐。class enum typedef和extension應採用駝峰命名uppercamelcase規則。class mainscree...

SVN最佳實踐

楊爭 subversion是新一代的版本控制工具,由於其優於cvs的一些特點,得到了越來越多人的關注和使用,本人根據自己使用svn的經驗,寫了這篇文章,希望對大家有所幫助,其中有些實踐並不是僅僅適用於svn,對其他版本控制工具也是適用的。1 養成良好的記錄日誌的習慣.svn ci提交,最好在日誌中記...