zoukankan      html  css  js  c++  java
  • junit4 单元测试学习笔记(三)

    文章转载自http://www.cnblogs.com/eggbucket/archive/2012/02/02/2335630.html

    这一节我们将学习进行批量处理,假如我们有多的测试,怎样进行批量处理,请跟着我做。

    ---------------------------------------------

    假如我们写了两个被测程序。如下:

    T.java

    复制代码
    package com.junit4.cc;

    publicclass T {
    publicint add(int x ,int y){
    return x+y;
    }
    publicstaticvoid main(String args[]){
    int z=new T().add(3,5);
    System.out.println(z);
    }
    }
    复制代码

    User.java

    复制代码
    package com.junit4.cc;

    publicclass User {
    public String geName(){
    return"刘若英"; //PS:她是我的偶像嘻嘻:)
    }
    }
    复制代码

    ------------------------------------测试类-------------------------

    下面要对上面的两个类写测试类。(关于测试类的创建的方法,不懂的可以看我的第一篇《junit浅学笔记一》)

    TTest.java   对应的是T.java的测试类。

    复制代码
    package com.junit4.cc.test;

    importstatic org.junit.Assert.*;

    import org.junit.Test;
    import com.junit4.cc.*;

    publicclass TTest {
    @Test
    publicvoid testAdd() {
    int z=new T().add(5,3);
    assertEquals(
    8,z);
    }
    }
    复制代码

    UserTest.java  对应的是User.java

    复制代码
    package com.junit4.cc.test;

    importstatic org.junit.Assert.*;

    import org.junit.Test;
    import com.junit4.cc.User;

    publicclass UserTest {

    @Test
    publicvoid testGeName() {
    assertEquals(
    new User().geName(),("刘若英"));
    }
    }
    复制代码

    完成之后的列表如下:

    要批量运行上面两个测试类,有两个方法。

    方法一

    右键点击测试包“com.junit4.cc.test”--->Run As--->Run Configurations.

    这种方式设置简单,但灵活度不高,假如有100个测试类。我只想运行其中的某几个测试类。下面看第二中方式。

    方法二

    方法引入一种“测试套件”的概念,JUnit提供了一种批量运行测试类的方法,叫测试套件。

      测试套件的写法需要遵循以下原则:

      1. 创建一个空类作为测试套件的入口;

      2. 使用注解 org.junit.runner.RunWith 和 org.junit.runners.Suite.SuitClasses 修饰这个空类

      3. 将org.junit.runners.Suite作为参数传入给注解RunWith,以提示Junit为此类测试使用套件运行器执行。

      4. 将需要放入此测试套件的测试类组成数组作为注解SuiteClasses的参数

      5. 保证这个空类使用public修饰,而且存在公开的不带任何参数的构造函数

    下面在测试包(com.junit4.cc.test)下面创建一个测试类,内容如下:

    AllTest.java

    复制代码
    package com.junit4.cc.test;


    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import org.junit.runners.Suite.SuiteClasses;
    @RunWith(Suite.
    class)
    @SuiteClasses({
    TTest.
    class,
    UserTest.
    class //这里自由加入需要运行的测试类
    })
    publicclass AllTest {

    }
    复制代码

    创建之后的列表:

    运行AllTest.java的结果(这里,两个方法的运行结果是一样的):

    ps:关于两种方式的比较,第一种方法简单,只用选择测试包,就可以批量运行里面的所有测试程序。第二种方式还有重新创建一个测试类,但它非常灵活,只用在这个类中加入需要运行的类就可以灵活的运行需要测试的类。

  • 相关阅读:
    一个可以代替冗长switch-case的消息分发小框架
    [JCIP笔记](五)JDK并发包
    [JCIP笔记](四)踩在巨人的肩上
    [JCIP笔记] (三)如何设计一个线程安全的对象
    工作两年的五个感想
    [JCIP笔记] (二)当我们谈线程安全时,我们在谈论什么
    [JCIP笔记] (一)多线程的起源
    每天进步一点点------CORDIC (一)
    每天进步一点点------Alpha半透明图形叠加算法Matlab+Verilog实现
    每天进步一点点------Altium Designer Rules规则详解
  • 原文地址:https://www.cnblogs.com/CoffeeHome/p/3540559.html
Copyright © 2011-2022 走看看