7、一樣的包,不同的位置(same package, separate directories)。測試的代碼和被測試的代碼應該放到不同的文件夾中,建議使用這種目錄 src/java/代碼 src/test/測試代碼。 這樣可以讓兩份代碼使用一樣的包結構,但是放在不同的目錄下。
8、關于setup與teardown
a) 不要用TestCase的構造函數初始化Fixture,而要用setUp()和tearDown()方法。
b) 在setUp和tearDown中的代碼不應該是與測試方法相關的,而應該是全局相關的。如:針對與測試方法都要用到的數據庫鏈接等等。
c) 當繼承一個測試類時,記得調用父類的setUp()和tearDown()方法。
9、不要在mock object中牽扯到業務邏輯(don’t write business logic in mock objects)。
10、只對可能產生錯誤的地方進行測試(only test what can possibly break)。如:一個類中頻繁改動的函數。對于那些僅僅只含有getter/setter的類,如果是由IDE(如Eclipse)產生的,則可不測; 如果是人工寫,那么最好測試一下。
11、盡量不要依賴或假定測試運行的順序,因為JUnit利用Vector保存測試方法。所以不同的平臺會按不同的順序從Vector中取出測試方法。
12、避免編寫有副作用的TestCase,你要確信保持你的測試方法之間是獨立的。
13、將測試代碼和工作代碼放在一起,一邊同步編譯和更新(使用Ant中有支持junit的task)。
14、確保測試與時間無關,不要依賴使用過期的數據進行測試。導致在隨后的維護過程中很難重現測試。
15、如果你編寫的軟件面向國際市場,編寫測試時要考慮國際化的因素。不要僅用母語的Locale進行測試。
16、盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡潔。
17、測試要盡可能地小,執行速度快。
文章來源于領測軟件測試網 http://www.kjueaiud.com/