1. 程式人生 > >Junit3 junit.framework 單元測試,簡單例項說明.

Junit3 junit.framework 單元測試,簡單例項說明.

在有些時候,我們需要對我們自己編寫的程式碼進行單元測試(好處是,減少後期維護的精力和費用),這是一些最基本的模組測試。當然,在進行單元測試的同時也必然得清楚我們測試的程式碼的內部邏輯實現,這樣在測試的時候才能清楚地將我們希望程式碼邏輯實現得到的結果和測試實際得到的結果進行驗證對比。
        首先建立一個java工程,在工程中建立一個被單元測試的Student資料類,如下:
  1. package com.phicomme.hu;  
  2. publicclass Student  
  3. {  
  4.     private String name;  
  5.     private String sex;  
  6.     privateint high;  
  7.     privateint age;  
  8.     private String school;  
  9.     public Student(String name, String sex ,int high, int age, String school)  
  10.     {  
  11.         this.name = name;  
  12.         this.sex = sex;  
  13.         this.high = high;  
  14.         this.age = age;  
  15.         this.school = school;  
  16.     }  
  17.     public String getName()  
  18.     {  
  19.         return name;  
  20.     }  
  21.     publicvoid setName(String name)  
  22.     {  
  23.         this.name = name;  
  24.     }  
  25.     public String getSex()  
  26.     {  
  27.         return sex;  
  28.     }  
  29.     publicvoid setSex(String sex)  
  30.     {  
  31.         this.sex = sex;  
  32.     }  
  33.     publicint getHigh()  
  34.     {  
  35.         return high;  
  36.     }  
  37.     publicvoid setHigh(int high)  
  38.     {  
  39.         this.high = high;  
  40.     }  
  41.     publicint getAge()  
  42.     {  
  43.         return age;  
  44.     }  
  45.     publicboolean setAge(int age)  
  46.     {  
  47.         if (age >25)  
  48.         {  
  49.             returnfalse;  
  50.         }  
  51.         else
  52.         {  
  53.             this.age = age;  
  54.             returntrue;  
  55.         }                 
  56.     }  
  57.     public String getSchool()  
  58.     {  
  59.         return school;  
  60.     }  
  61.     publicvoid setSchool(String school)  
  62.     {  
  63.         this.school = school;  
  64.     }  
  65. }  

在eclipse下單元測試這個類:  

首先匯入Junit包:選中java工程,點選滑鼠右鍵--->選擇properties---->在視窗中選Java Build Path---->在右側點選Add Library---->在彈出的視窗列表中選中Junit---->下一步----->Junit 4(我用的是Junit 4)---->finish( Junit3的jar 用Junit4的jar也可以, 所以不用奇怪Junit3用Junit4的Jar)

這樣Junit 4包就導完了,接下來就是建立測試類:

將測試類和被測試類放在不同的包中(也可以放在同一個包中,此處只是為了區別),程式碼如下:

測試類1:

  1. package com.phicomme.test;  
  2. import com.phicomme.hu.Student;  
  3. import junit.framework.TestCase;  
  4. publicclass StudentTest01 extends TestCase  
  5. {  
  6.     Student testStudent;  
  7.     //此方法在執行每一個測試方法之前(測試用例)之前呼叫
  8.     @Override
  9.     protectedvoid setUp() throws Exception  
  10.     {  
  11.         // TODO Auto-generated method stub
  12.         super.setUp();  
  13.         testStudent = new Student("djm""boy"17824"華東政法");  
  14.         System.out.println("setUp()");  
  15.     }  
  16.     //此方法在執行每一個測試方法之後呼叫
  17.     @Override
  18.     protectedvoid tearDown() throws Exception  
  19.     {  
  20.         // TODO Auto-generated method stub
  21.         super.tearDown();  
  22.         System.out.println("tearDown()");  
  23.     }  
  24.     //測試用例,測試Person物件的getSex()方法
  25.     publicvoid testGetSex()  
  26.     {  
  27.         assertEquals("boy", testStudent.getSex());  
  28.         System.out.println("testGetSex()");  
  29.     }  
  30.     //測試Person物件的getAge()方法
  31.     publicvoid testGetAge()  
  32.     {  
  33.         assertEquals(24, testStudent.getAge());  
  34.         System.out.println("testGetAge()");  
  35.     }  
  36. }  

測試類2:

  1. package com.phicomme.test;  
  2. import junit.framework.TestCase;  
  3. import com.phicomme.hu.Student;  
  4. publicclass StudentTest extends TestCase  
  5. {  
  6.     private Student testStudent;  
  7.     @Override
  8.     protectedvoid setUp() throws Exception  
  9.     {  
  10.         // TODO Auto-generated method stub
  11.         super.setUp();  
  12.         testStudent = new Student("steven_hu""boy"170 , 23"上海理工");  
  13.     }  
  14.     @Override
  15.     protectedvoid tearDown() throws Exception  
  16.     {  
  17.         // TODO Auto-generated method stub
  18.         super.tearDown();  
  19.     }  
  20.     publicvoid testSetage()  
  21.     {  
  22.         assertTrue(testStudent.setAge(21));  
  23.     }  
  24.     publicvoid testGetSchool()  
  25.     {  
  26.         //預期值和實際值不一樣,測試時出現失敗(Failure)
  27.         assertEquals("南昌大學", testStudent.getSchool());  
  28.     }  
  29.     publicvoid testGetName()  
  30.     {  
  31.         assertEquals("hdy", testStudent.getName());  
  32.     }  
  33. }  
當然,如果同時需要一起測試以上這兩個測試類,可以通過TestSuite類實現,它相當於是一個套件,可以把所有測試類添進來一起執行測試;
程式碼如下:
  1. package com.phicomme.test;  
  2. import com.phicomme.hu.StudentTest02;  
  3. import junit.framework.Test;  
  4. import junit.framework.TestSuite;  
  5. publicclass AllTest  
  6. {  
  7.     //static PersonTest p = new PersonTest();
  8.     //static PersonTest p1 = new PersonTest();
  9.     publicstatic Test suite()  
  10.     {