一、Junit單元測試
1.1. Junit單元測試框架的基本使用
一、搭建環境:
導入junit.jar包(junit4)
二、寫測試類:
0,一般一個類對應一個測試類。
1,測試類與被測試類最好是放到同一個包中(可以是不同的源文件夾)
2,測試類的名字爲被測試類的名字加Test後綴。
三:寫測試方法:
0,一般一個方法對應一個單元測試方法。
1,測試方法的名字爲test前綴加被測試方法的名字,如testAddPerson()。
2,單元測試方法上面要加上@Test註解(org.junit.Test)!
3,單元測試方法不能有參數,也不能有返回值(返回void)!測試的方法不能是靜態的方法。
四、測試方法的基本使用:
1,可以單獨執行一個測試方法,也可以一次執行所有的、一個包的、一個類中所有的測試方法。
2,執行完後,顯示綠色表示測試成功;顯示紅色表示測試失敗(拋異常後會測試失敗)。
1.2. Assert斷言工具類
1.3. 用於準備環境、清理環境的方法
@Test
表示單元測試方法。
@Before
所修飾的方法應是非static的(且沒有參數,返回值爲void)。
表示這個方法會在本類中的每個單元測試方法之前都執行一次。
@After
所修飾的方法應是非static的(且沒有參數,返回值爲void)。
表示這個方法會在本類中的每個單元測試方法之後都執行一次。
@BeforeClass
所修飾的方法應是static的(且沒有參數,返回值爲void)。
表示這個方法會在本類中的所有單元測試方法之前執行,只執行一次。
@AfterClass
所修飾的方法應是static的(且沒有參數,返回值爲void)。
表示這個方法會在本類中的所有單元測試方法之後執行,只執行一次。
二、內省
開發框架時,經常需要使用java對象的屬性來封裝程序的數據,每次都使用反射技術完成此類操作過於麻煩,所以sun公司開發了一套API,專門用於操作java對象的屬性。
內省是用於操作java對象的屬性的,那麼以下問題我們必須要清楚。
問題一: 什麼是Java對象的屬性和屬性的讀寫方法?
問題二: 如何通過內省訪問到javaBean的屬性 ?
1. 通過PropertyDescriptor類操作Bean的屬性.
2. 通過Introspector類獲得Bean對象的 BeanInfo,然後通過 BeanInfo 來獲取屬性的描述器( PropertyDescriptor ),通過這個屬性描述器就可以獲取某個屬性對應的getter/setter 方法,然後通過反射機制來調用這些方法。
存在的問題: sun公司的內省API過於繁瑣,所以Apache組織結合很多實際開發中的應用場景開發了一套簡單、易用的API操作Bean的屬性——BeanUtils。
public static void main(String[] args) throws Exception {
Person p = new Person();
ConvertUtils.register(new Converter() {
@Override
public Object convert(Class type, Object value) {
try {
if(value!=null){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy MM dd");
Date d =dateFormat.parse((String) value);
return d;
}
} catch (ParseException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
return null;
}
}, Date.class);
BeanUtils.setProperty(p,"id","110");
BeanUtils.setProperty(p,"name","狗娃");
BeanUtils.setProperty(p, "birthDay","1992 12 12");
System.out.println(p.getId() +"=="+ p.getName()+"======"+p.getBirthDay());
}