01.使用Junit测试Java代码

本节通过一个简单的样例使用Junit测试Java代码

新建项目目录

在磁盘新建项目目录,并在其中建立如下目录结构:

├─bin
├─lib
└─src

建立包及Java文件

在src目录下建立如下目录结构

├─bin
├─lib
└─src
    └─org
        └─hibiscus
            ├─demo
            └─test
                ├─demo
                └─main

新建java文件src\org\hibiscus\demo\Demo.java,内容如下:

package org.hibiscus.demo;

public class Demo{
    
    /**
        * 加法运算
        * @param a
        * @param b
        * @author cloud
        */
    public int add(int a,int b){
        return a+b;
    }

    /**
        * 减法运算
        * @param a
        * @param b
        * @author cloud
        */
    public int sub(int a,int b){
        return a-b;
    }

    /**
        * 除法运算
        * @param a
        * @param b
        * @author cloud
        */
    public int div(int a,int b){
        return a/b;
    }

}

新建java文件src\org\hibiscus\test\demo\DemoTest.java,内容如下:

package org.hibiscus.test.demo;

import static org.junit.Assert.*;

import org.hibiscus.demo.Demo;
import org.junit.Ignore;
import org.junit.Test;

public class DemoTest{
    
    /**
        *	 * Add方法测试类
        *	
        */
    
    @Test
    @Ignore
    public void testAdd() {
        Demo demo = new Demo();
        assertEquals(3,demo.add(1,2));
    }
    
    /**
        *	 * sub方法测试类
        *
        */
    @Test
    public void testSub() {
        Demo demo = new Demo();
        assertEquals(1,demo.sub(2,1));
    }
                
    
    @Test
    public void testDivit(){
        Demo demo = new Demo();
        assertEquals(2,demo.div(2,0));
    }

}

新建java文件src\org\hibiscus\test\main\Main.java,内容如下:

package org.hibiscus.test.main;

import java.util.List;

import org.hibiscus.test.demo.DemoTest;

import org.junit.runner.Result;
import org.junit.runner.JUnitCore;
import org.junit.runner.notification.Failure;

public class Main{
    
    public static void main(String[] args){
        Result result = JUnitCore.runClasses(DemoTest.class);
        System.out.println("运行时间:\t"+result.getRunTime()+" 毫秒");
        System.out.println("运行数量:\t"+result.getRunCount());
        System.out.println("成功数量:\t"+(result.getRunCount()-result.getFailureCount()));
        System.out.println("失败数量:\t"+result.getFailureCount());
        System.out.println("忽略数量:\t"+result.getIgnoreCount());
        List<Failure> failureList = result.getFailures();
        if(failureList.size()>0){
            System.out.println("\n错误列表:");
        }
        for(int i = 0;i<failureList.size();i++){
            System.out.println("\t"+failureList.get(i).getTestHeader()+"\t"+failureList.get(i).getMessage());
        }
    }

}

添加Junit包和hamcrest-core包

下载Junit的jar包与hamcrest-core的jar包放置到lib目录

编译

在终端中进入项目目录,使用如下命令编译:

$ javac -extdirs lib  -sourcepath src -encoding utf-8 -d bin src\org\hibiscus\test\main\Main.java

运行

使用如下命令运行:

$ java -Djava.ext.dirs=lib;. org.hibiscus.test.main.Main

运行结果

运行时间: 4 毫秒

运行数量: 2

成功数量: 1

失败数量: 1

忽略数量: 1

错误列表:

 testDivit(org.hibiscus.test.demo.DemoTest) / by zero

也可以使用方法:

import org.junit.runner.Request;

......

Result result = new JUnitCore().run(Request.method(TestExample.class, "testMethod"));

来执行单个测试方法