1.13-java单元测试junit

单元测试junit4.12基本使用方法

回到第一章:目录


文章目录

  • 单元测试junit4.12基本使用方法
  • 前言
  • 一、编写一个工具类
  • 二、为工具类编写单测代码
  • 三、运行


前言

junit是java语言开源单元测试框架,由Kent Beck和Erich Gamma建立的,在项目中使用junit单元测试,需要引入2个包:
junit-4.12.jar
hamcrest-core-1.3.jar
若不知道如何获取这2个包,可通过百度网盘下载:
链接:https://pan.baidu.com/s/1TfD8dDoF9OZB3Ay1m9iPlw
提取码:i7tr


步骤

一、编写一个工具类

1、打开idea,新建工程:junit-test

1.13-java单元测试junit_第1张图片

2、新建包:com.my.tools
1.13-java单元测试junit_第2张图片
3、新建类:Computer,代表一个具备基本数据运算的计算器,这个类可作为工具供其他代码使用。代码如下:

package com.my.tools;

public class Computer {
     

    /**加法运算*/
    public static double add(double a,double b){
     
        return a+b;
    }
    /**减法运算*/
    public static double minus(double a,double b){
     
        return a-b;
    }
    /**乘法运算*/
    public static double multi(double a,double b){
     
        return a*b;
    }
    /**除法运算*/
    public static double div(double a,double b){
     
        return a/b;
    }
    /**求幂运算:求a的b次方*/
    public static double power(double a,double b){
     
        return Math.pow(a,b);
    }
    /**开方运算:求a的b次方*/
    public static double sqrtX(double a,double b){
     
        return Math.pow(a,1.0/b);
    }
    /**对数运算:求base为底,value的log*/
    public static double log(double value,double base){
     
        return Math.log(value)/Math.log(base);
    }
}

1.13-java单元测试junit_第3张图片

二、为工具类编写单测代码

1、一般情况下,为测试这个Computer 工具类各个方法的正确性,可以创建一个main函数,然后编写测试代码,通过运行main函数检验结果,比如:
1.13-java单元测试junit_第4张图片
2、当工程比较复杂,通过main函数进行调试的成本就比较高,且一个工程中代码中存在大量的main函数是不可取的。因此需要单元测试框架,来快速、高效的测试某个方法的正确性,且编写完善的单测代码是保证软件质量的必要手段。

3、准备好2个junit单元测试所依赖的jar包:
junit-4.12.jar
hamcrest-core-1.3.jar

4、在工程跟目录,新建一个目录lib,将以上2个jar包复制到lib目录下。
1.13-java单元测试junit_第5张图片
5、在com.my.tools包下面,新建Computer对象的测试类:ComputerTest,代码如下:

package com.my.tools;

import junit.framework.TestCase;
import org.junit.Test;

/**ComputerTest 的测试类,继承至TestCase*/
public class ComputerTest extends TestCase {
     

    /**方法上加 @Test,且方法名以 test开头*/
    @Test
    public void testAdd(){
     
        //1、正案例
        assertEquals(5.0,Computer.add(2,3));
        assertEquals(5.0,Computer.add(5,0));
        assertEquals(5.0,Computer.add(-1,6));
        //2、反案例
        assertNotSame(4.0,Computer.add(2,3));
    }

    @Test
    public void testMinus(){
     
        //1、正案例
        assertEquals(5.0,Computer.minus(10,5));
        assertEquals(5.0,Computer.minus(5,0));
        assertEquals(5.0,Computer.minus(-10,-15));
        //2、反案例
        assertNotSame(4.0,Computer.minus(2,3));
    }

    @Test
    public void testMulti(){
     
        //1、正案例
        assertEquals(5.0,Computer.multi(1,5));
        assertEquals(0.0,Computer.multi(5,0));
        assertEquals(5.0,Computer.multi(-5,-1));
        //2、反案例
        assertNotSame(4.0,Computer.multi(2,3));
    }

    @Test
    public void testDiv(){
     
        //1、正案例
        assertEquals(0.2,Computer.div(1,5));
        assertEquals(5.0,Computer.div(10,2));
        assertEquals(5.0,Computer.div(-5,-1));
        //2、反案例
        assertNotSame(4.0,Computer.div(2,3));
        assertNotSame(4.0,Computer.div(2,0));
    }

    @Test
    public void testPower(){
     
        //1、正案例
        assertEquals(1.0,Computer.power(1,5));
        assertEquals(100.0,Computer.power(10,2));
        assertEquals(-0.2,Computer.power(-5,-1));
        assertEquals(1.0,Computer.power(-5,0));
        //2、反案例
        assertNotSame(4.0,Computer.power(2,3));
    }
    @Test
    public void testSqrtX(){
     
        //1、正案例
        assertEquals(1.0,Computer.sqrtX(1,5));
        assertEquals(3.1622776601683795,Computer.sqrtX(10,2));
        assertEquals(0.2,Computer.sqrtX(5,-1));
        //2、反案例
        assertNotSame(4.0,Computer.sqrtX(2,3));
    }
    @Test
    public void testLog(){
     
        //1、正案例
        assertEquals(1.0,Computer.log(10,10));
        assertEquals(3.3219280948873626,Computer.log(10,2));
        //2、反案例
        assertNotSame(4.0,Computer.log(2,0));
    }
}

6、代码存在报错,引入包的语句无效。这是因为以上2个jar包还没添加到工作路径。
1.13-java单元测试junit_第6张图片
7、点 file - Project Structure , 选 Libraries, 点 + 号,选到 lib目录下的两个jar包,点确定,ComputerTest中的代码就正常无报错了。
1.13-java单元测试junit_第7张图片

三、运行

1、运行单个方法的测试代码。鼠标点击到 要测试的方法区域,如 testAdd方法,点鼠标右键,Run testAdd(),可以看到左下方 testAdd 打勾,说明testAdd代码里的全部案例都通过了。

1.13-java单元测试junit_第8张图片
1.13-java单元测试junit_第9张图片

2、运行全部单元测试。鼠标点击 ComputerTest ,右键 Run ‘ComputerTest’。可见左下角每个测试方法的执行情况。
1.13-java单元测试junit_第10张图片
1.13-java单元测试junit_第11张图片

你可能感兴趣的:(开发-测试技术基础知识培训)