沒有反射,很多框架就都不存在了。(No Reflection, no most frameworks).
JUnit簡單介紹
JUnit(3.8,4.x):基於Java的單元測試。
JUnit 3.8是基於反射,JUnit 4.x是基於反射和注解的。
使用時首先導入jar包:在項目名上右鍵,配置Java Build Path,選擇Add Library..,然后選擇JUnit。之后選擇版本3或者4。
如果選JUnit 3,則加好后如下:
測試程序運行結果如下圖:
Keep the bar green to keep the code clean.
JUnit 3中方法必須以test開頭才能被找到。說明是通過反射來找到並調用方法。
如果選用JUnit 4,則測試例子代碼可以如下:
import org.junit.Test; public class Test2 { @Test public void hello() { System.out.println("Hello World!"); } }
通過一個注解,怎么找到要執行的方法?
JUnit 4的一般執行流程:
首先,獲取待測試類所對應的Class對象,然后就可以獲取其中的所有方法(JUnit要求所有方法都是public的)。
獲取了所有方法的Method對象,對於每個Method對象,通過調用isAnnotationPresent(Test.class)方法,可以檢查方法是否有名為Test的注解,如果有這個注解,則調用Method對象的invoke()方法來執行這個方法。
參考資料
張龍老師Java SE系列視頻教程。
單元測試不是為了證明你是對的,而是證明你沒有錯誤。
Writing Secure Code(編寫安全的代碼):Input is evil.