JUnit 3一個例子就懂


 

   JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.

 

    JUnit是一個回歸測試框架,用於編寫和運行可重復的測試。它有以下特性:

 

1、用於測試期望結果的斷言(Assertion)。 2、用於共享共同測試數據的測試工具。 3、用戶方便的組織和運行測試的測試套件。 4、圖形和文本的測試運行器。

     

   本篇博客通過一個簡單的實例來展示JUnit3用於測試期望結果的斷言這一特性,一個例子足以。

  1、建立一個Java Program,引入JUnit的jar包,新建一個名為test的Source Folder,把那些測試類都放在這個文件夾下。

  2、新建一個Package,將測試類和需要測試的目標類全部放在一個包里,需要給測試用類已Test為開頭或結尾來命名,以區分和聯系目標類。

   3、展示例子:

    (1)首先建立一個簡單到不能再簡單的目標類。命名為UserManager.class.

 

 2 
 3 import javax.management.RuntimeErrorException;
 4 
 5 public class UserManager {
 6     /**
 7      * 一個簡單的虛擬用戶添加方法
 8      * @author 巨亞紅
 9      * @date 2014-4-14 下午3:58:51
10      * @版本 V1.0   作者: 時間:  修改:
11      * @param userName
12      */
13     public void addUser(String userName){
14         
15         System.out.println("userManger.addUser");
16         //throw new RuntimeException();
17     }
18     /**
19      * 一個簡單的虛擬用戶刪除方法
20      * @author 巨亞紅
21      * @date 2014-4-14 下午3:59:23
22      * @版本 V1.0   作者: 時間:  修改:
23      * @param userName
24      */
25     public void deleteUser(String userName){
26         
27         System.out.println("userManger.deleteUser");
28     }
29     /**
30      * 一個簡單的虛擬根據用戶ID查找用戶的方法
31      * @author 巨亞紅
32      * @date 2014-4-14 下午3:59:43
33      * @版本 V1.0   作者: 時間:  修改:
34      * @param userId
35      * @return
36      */
37     public String findUserById(String userId){
38         return "Jessica";
39     }
40 }

 

 

 

    (2)添加或編寫測試類。如果使用My Eclipse,可以直接在目標類右擊---添加----JUnit Test Case,然后就會彈出相應的頁面,可以選擇New JUnit3 test 也可以選擇New JUnit 4 test。我們本博客講JUnit3,所以選3。編寫UserManagerTest.java測試類如下,重要的是先要繼承TestCase.java

 2 
 3 
 4 import junit.framework.TestCase;
 5 
 6 //繼承TestCase類很重要
 7 public class UserManagerTest extends TestCase {
 8     /**
 9      * 測試addUser方法
10      * @author 巨亞紅
11      * @date 2014-4-14 下午4:07:28
12      * @版本 V1.0   作者: 時間:  修改:
13      */
14     public void testAddUser(){
15         UserManager userManager=new UserManager();
16         userManager.addUser("Jessica");
17         System.out.println("UserManagerTest.testAddUser");
18         
19     }
20     /**
21      * 測試deleteUser方法
22      * @author 巨亞紅
23      * @date 2014-4-14 下午4:07:46
24      * @版本 V1.0   作者: 時間:  修改:
25      */
26     public void testDeleteUser(){
27         UserManager userManager=new UserManager();
28         userManager.deleteUser("Jessica");
29         System.out.println("UserManagerTest.testDeleteUser");
30         
31     }
32     /**
33      * 測試findUserById方法
34      * @author 巨亞紅
35      * @date 2014-4-14 下午4:07:59
36      * @版本 V1.0   作者: 時間:  修改:
37      */
38      public void testFindUserById(){
39         UserManager userManager=new UserManager();
40         String userName=userManager.findUserById("000");
41         
42         System.out.println("UserManagerTest.testFindUser----userName="+userName);
43         //定義你的期望值
44         String excepted="Jessica";
45         //如果期望值為Juyahong,JUnit就會提示報錯。
46         //String excepted="Juyahong";
47         this.assertEquals(excepted, userName);
48         
49     }
50 }

 

 

 

   通過this.assertEquals(expected, actual)來測試預期結果與實際結果是否匹配,如果匹配,JUnit就會顯示綠色,如果不一樣就提示紅色。

正確:

 

錯誤:

  

  當然現在已有JUnit4,它與JUnit3的區別有以下幾點:

    1. JUnit4利用了 Java 5 的新特性"注釋",每個測試方法都不需要以testXXX的方式命名,行時不在用反射機制來查找並測試方法,取而帶之是用@Test來標注每個測試方法,效率提升
    2. JUnit4中測試類不必繼承TestCase了,另外要注意JUnit4和JUnit3引入的包完全不同。
            PS:Eclipse中要使用Junit的話,必須要添加Junitlibrary
    3.JUnit4和JUnit3在測試Suite時也有很大不同,即在測試套件時它們有區別,JUnit4在測試套件時,必須構造一個空類,而且使用Annotation的形式,即
@RunWith(Suite.class)
@Suite.SuiteClasses({ShoppingCartTest.class,ProductTest.class}),而JUuni3則是普通的直接用函數調用,添加Suite。

  下篇博客將詳細講述JUnit4的詳細使用,看看它的進步之處在哪里。

  


免責聲明!

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



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