最近看一個項目的代碼,看到該項目對於每一個類都會有一個測試程序。因為我需要用到項目中的某部分代碼做測試,想着可不可以采用同樣的辦法,為該部分寫一個測試程序。但是,后面發現不可以,因為JUnit測試包需要有類似eclipse或者maven等開發環境下才能使用(僅僅是我的理解),因為需要下載JUnit測試包。所以,最后的實現是重新寫了一個含main()函數的類,修改pom.xml中的關於main()函數入口。
我的理解應該是,JUnit為測試寫了一個普適的接口,比如main()函數接口等,客戶在使用的時候只需要編寫特定的部分即可。
多數Java的開發環境都已經集成了JUnit作為單元測試的工具,Junit測試是程序員測試,即所謂白盒測試,因為程序員知道被測試的軟件如何(How)完成功能和完成什么樣(What)的功能。Junit是一套框架,繼承TestCase類,就可以用Junit進行自動測試了。
另外junit是在極限編程和重構(refactor)中被極力推薦使用的工具。什么是極限編程?要求在編寫代碼之前先寫測試,這樣可以強制你在寫代碼之前好好的思考代碼(方法)的功能和邏輯,否則編寫的代碼很不穩定,那么你需要同時維護測試代碼和實際代碼,這個工作量就會大大增加。因此在極限編程中,基本過程是這樣的:構思-> 編寫測試代碼-> 編寫代碼-> 測試,而且編寫測試和編寫代碼都是增量式的,寫一點測一點,在編寫以后的代碼中如果發現問題可以較快的追蹤到問題的原因,減小回歸錯誤的糾錯難度。
注意點如下:
1、使用簡單的 @Test 注解實現我們的測試方法的編寫和執行
2、使用@Test 的 Ignore 屬性指定測試時跳過某個方法
3、使用注解 @Before 和 @After 來完成前置工作和后置工作
4、使用@Test 的屬性 timeout 來完成限時測試,以檢測代碼中的死循環
5、使用@Test 的屬性expected來監控測試方法中可能會拋出的某些異常
6、指定 JUnit 運行測試用例時的 Runner
7、testNG 可能是用於大量數據測試
具體可以參見這些鏈接:
https://my.oschina.net/bairrfhoinn/blog/167636
http://mark-yang.github.io/blog/2015/05/17/junit/