使用JUnit4進行java單元測試


 第一步:創建一個java工程,在工程中創建一個被單元測試的Student數據類,代碼如下:

 1 package com.junittest.yu;
 2 
 3 public class Student
 4 {
 5     private String name;
 6     private String sex;
 7     private int high;
 8     private int age;
 9     private String school;
10     
11     public Student(String name, String sex ,int high, int age, String school)
12     {
13         this.name = name;
14         this.sex = sex;
15         this.high = high;
16         this.age = age;
17         this.school = school;
18     }
19     public String getName()
20     {
21         return name;
22     }
23     public void setName(String name)
24     {
25         this.name = name;
26     }
27     public String getSex()
28     {
29         return sex;
30     }
31     public void setSex(String sex)
32     {
33         this.sex = sex;
34     }
35     public int getHigh()
36     {
37         return high;
38     }
39     public void setHigh(int high)
40     {
41         this.high = high;
42     }
43     public int getAge()
44     {
45         return age;
46     }
47     public boolean setAge(int age)
48     {
49         if (age >25)
50         {
51             return false;
52         }
53         else
54         {
55             this.age = age;
56             return true;
57         }               
58     }
59     
60 
61     public String getSchool()
62     {
63         return school;
64     }
65     public void setSchool(String school)
66     {
67         this.school = school;
68     }
69     
70 }

部分截圖如下:

 圖 1-1

第二步:在eclipse下單元測試這個類
    首先,導入Junit包:選中java工程,點擊鼠標右鍵--->選擇屬性---->在窗口中選Java構建路徑---->選擇庫--->右側點擊添加庫---->在彈出的窗口列表中選中Junit---->下一步----->Junit 4---->完成--->確定

部分截圖如下:

 圖 2-1

這樣Junit 4包就導完了,接下來就是創建測試類:選中java工程,點擊鼠標右鍵--->選擇新建--->JUnit測試用例--->按圖2-2編輯--->完成

 圖 2-2

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

 

 1 package com.junittest.yu.test;
 2 
 3 import com.junittest.yu.Student;
 4 
 5 import junit.framework.TestCase;
 6 
 7 public class StudentTest01 extends TestCase
 8 {
 9 
10     Student testStudent;
11     //此方法在執行每一個測試方法之前(測試用例)之前調用
12     @Override
13     protected void setUp() throws Exception
14     {
15         // TODO Auto-generated method stub
16         super.setUp();
17         testStudent = new Student("djm", "boy", 178, 24, "齊魯工業");
18         System.out.println("setUp()");
19     }
20 
21     //此方法在執行每一個測試方法之后調用
22     @Override
23     protected void tearDown() throws Exception
24     {
25         // TODO Auto-generated method stub
26         super.tearDown();
27         System.out.println("tearDown()");
28     }
29 
30     //測試用例,測試Person對象的getSex()方法
31     public void testGetSex()
32     {
33         assertEquals("boy", testStudent.getSex());
34         System.out.println("testGetSex()");
35     }
36     
37     //測試Person對象的getAge()方法
38     public void testGetAge()
39     {
40         assertEquals(24, testStudent.getAge());
41         System.out.println("testGetAge()");
42     }
43 }

完成后截圖如下:

圖 2-3

按以上方法創建測試類(2)代碼如下:

 1 package com.junittest.yu.test;
 2 
 3 
 4 import junit.framework.TestCase;
 5 
 6 import com.junittest.yu.Student;
 7 
 8 public class StudentTest extends TestCase
 9 {
10 
11     private Student testStudent;
12     
13     @Override
14     protected void setUp() throws Exception
15     {
16         // TODO Auto-generated method stub
17         super.setUp();
18         testStudent = new Student("steven_hu", "boy", 170 , 23, "上海理工");
19     }
20 
21     @Override
22     protected void tearDown() throws Exception
23     {
24         // TODO Auto-generated method stub
25         super.tearDown();
26     }
27 
28     public void testSetage()
29     {
30         assertTrue(testStudent.setAge(21));
31     }
32     
33     public void testGetSchool()
34     {
35         //預期值和實際值不一樣,測試時出現失敗(Failure)
36         assertEquals("南昌大學", testStudent.getSchool());
37     }
38     
39     public void testGetName()
40     {
41         assertEquals("hdy", testStudent.getName());
42     }
43 }

完成截圖如下:

 圖 2-3

如果同時需要一起測試以上這兩個測試類,可以通過TestSuite類實現,它相當於是一個套件,可以把所有測試類添進來一起運行測試

代碼如下:

 1 package com.junittest.yu.test;
 2 
 3 
 4 
 5 //import com.junittest.yu.test.StudentTest;
 6 import com.junittest.yu.test.StudentTest01;
 7 
 8 import junit.framework.Test;
 9 import junit.framework.TestSuite;
10 
11 public class AllTest
12 {
13 
14     //static PersonTest p = new PersonTest();
15     //static PersonTest p1 = new PersonTest();
16     public static Test suite()
17     {
18         TestSuite suite = new TestSuite("Test for com.junittest.yu.test.");
19         //suite.addTest(p);
20         //suite.addTest(p1);
21         suite.addTestSuite(StudentTest.class);
22         suite.addTestSuite(StudentTest01.class);
23         return suite;
24         
25     }
26 }

完成截圖如下:

圖 2-4  

第三步:分別測試以上三個類(選中需要測試的類---->鼠標右鍵---->運行方式---->Junit 測試)
StudentTest01類測試結果截圖如下:

圖 3-1

StudentTest類測試結果截圖如下:

圖 3-2

AllTest類測試結果截圖如下:

圖 3-3

到此java類的單元測試就完成了。

第四步:將Eclipse中java代碼上傳到GitHub

圖 4-1

在java項目上右擊--->Team--->共享項目--->Git--->按圖4-2操作--->完成

圖 4-2

將代碼上傳到GitHub:

在java項目上右擊--->Team--->commit--->選中所有文件--->commit --->見圖4-3--->URI就是GitHub自己倉庫的地址--->見圖4-4--->見圖4-5--->圖4-6

圖 4-3

圖 4-4

圖 4-5

 

圖 4-6

至此上傳完成。

完成各階段所需時間:

1,被測類代碼編寫 30%

2,測試類代碼編寫 40%

3,運行測試 10%

4,上傳代碼到GitHub 20%

附:GitHub  JUnit_Test庫地址 https://github.com/yujk1230/JUnit_Test


 

參考資料:http://my.oschina.net/Chaos777/blog/349167

              http://blog.csdn.net/stevenhu_223/article/details/8269157

       

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM