单元测试(一)使用Junit进行单元测试

前言

使用Junit进行单元测试,应该是所有Java开发的入门级教程,所以并不难。我也很久没敲过java代码了,为了不浪费我之前的Java基础,写一个简单案例记录一下,毕竟进行白盒测试也是一项基本技能,有点Java基础,遇到问题也能打个断点定位一下。

这里只介绍一个入门级的单元测试案例


环境

  • jdk1.8
  • 开发工具:Intellij IDEA


一、整体架构展示

单元测试(一)使用Junit进行单元测试_第1张图片


二、简单案例讲解

1、创建一个maven项目,并导入junit依赖
1.1)创建一个maven项目

单元测试(一)使用Junit进行单元测试_第2张图片
单元测试(一)使用Junit进行单元测试_第3张图片
单元测试(一)使用Junit进行单元测试_第4张图片


1.2)在pom.xml中导入Junit依赖

        
        
        
            junit
            junit
            4.12
            test
        
    

单元测试(一)使用Junit进行单元测试_第5张图片


2、创建被测试类
  • 注:被测试类是Java开发人员已写好的需被测试的类,实际测试中不需要准备,你能看懂Java代码就行,我这里就简单提供计算的测试类

CalculatorDemo

/**
 * @author mikasa
 * @descrption 被测试类
 */
public class CalculatorDemo {
    /**
     * 求和
     *
     * @param a
     * @param b
     * @return
     */
    public int add(int a, int b) {
        return a + b;
    }

    /**
     * 求差
     *
     * @param a
     * @param b
     * @return
     */
    public int sub(int a, int b) {
        return a - b;
    }

    /**
     * 求乘积
     *
     * @param a
     * @param b
     * @return
     */
    public int multiply(int a, int b) {
        return a * b;
    }

    /**
     * 求商,注:java的/为求商的整数,商四舍五入
     *
     * @param a
     * @param b
     * @return
     */
    public int divide(int a, int b) {
        return a / b;
    }
}

3、创建测试类

注意:

  • 1)被测试类和test底下的包要保持一致
    例:被测试类属于com.mikasa包下,那在test底下也创建同样的包com.mikasa,将测试类放在该包下

  • 2)测试类命名规范:大写Test+被测试类名称 例:TestCalculatorDemo
    测试方法命名:test+被测试方法 例:testAdd()

单元测试(一)使用Junit进行单元测试_第6张图片


TestCalculatorDemo

import org.junit.Assert;
import org.junit.Test;

/**
 * @author mikasa
 * @descrption 测试类
 */
public class TestCalculatorDemo {
    //实例化被测试类
    CalculatorDemo cal = new CalculatorDemo();

    /**
     * 测试加法
     */
    @Test
    public void testAdd() {
    	//断言判断值是否相等
        Assert.assertEquals(3, cal.add(1, 2));
    }

    /**
     * 测试减法
     */
    @Test
    public void testSub() {
        Assert.assertEquals(2, cal.sub(1, 2));
    }

    /**
     * 测试乘法
     */
    @Test
    public void multiply() {
        Assert.assertEquals(4,cal.multiply(2,3));
    }

    /**
     * 测试除法
     */
    @Test
    public void divide() {
        Assert.assertEquals(5,cal.divide(5,2));
    }
}

基础扩展:

1、Junit断言:

Junit所有的断言都包含在 Assert 类中,这个类提供了很多有用的断言方法来编写测试用例。只有失败的断言才会被记录。Assert 类中的常用方法有如下:

  • void assertEquals(boolean expected, boolean actual):检查两个变量或者等式是否相等
  • void assertTrue(boolean expected, boolean actual):检查条件为真
  • void assertFalse(boolean condition):检查条件为假
  • void assertNotNull(Object object):检查对象不为空
  • void assertNull(Object object):检查对象为空

2、Junit注解:
  • @Test: 声明一个测试案例
  • @Before: 每个测试用例执行之前都会执行一次,例如:所有测试用例都需要实例化对象
  • @After: 每个测试用例执行之后都会执行一次
  • @BeforeClass: 所有测试用例执行之前执行,并且只执行一次
  • @AfterClass: 所有测试用例执行之后执行,并且只执行一次
  • @Ignore: 忽略有关不需要执行的测试

4、创建测试运行类

TestRunner

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

/**
 * @author mikasa
 * @descrption 执行测试类
 */
public class TestRunner {
    public static void main(String[] args) {
        Result result = JUnitCore.runClasses(TestCalculatorDemo.class);
        for (Failure failure : result.getFailures()) {
            System.out.println("错误原因:" + failure.toString());
        }
        System.out.println("单元测试整体结果:" + result.wasSuccessful());
    }
}

5、运行测试运行类,查看结果

单元测试(一)使用Junit进行单元测试_第7张图片

你可能感兴趣的:(软件测试)