• 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的详细使用,看看它的进步之处在哪里。

      

  • 相关阅读:
    C语言——总结回顾
    C语言——第十四、十五周作业
    题目思路——统计素数并求和
    题目思路——单词长度
    C语言——第七周作业
    C语言——第六周作业
    C语言——第四次作业
    C语言——第三次作业
    C语言——第二次作业
    C语言——第一次作业
  • 原文地址:https://www.cnblogs.com/jyh317/p/3664296.html
Copyright © 2020-2023  润新知