Java學習日誌之BeanUtils&junit

一、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());

    }



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章