Java基础加强01-Juit单元测试1

1、Junit单元测试概述

   测试分类:

  1、黑盒测试:不需要写代码。给输入值,看程序是否能够输出期望的值。

  2、白盒测试:需要写代码。关注程序具体的执行流程。

   Junit单元测试是白盒测试中的一种。

2、Junit使用

  • 步骤:

  1、定义一个测试类(测试用例)

   建议:

    a. 建议测试类名为被测试的类名Test      CalculatorTest

    b. 包名:xxx.xxx.xx.test                          cn.itcast.test

    

  2、定义测试方法:可以独立运行

   建议:

    a. 方法名:test测试的方法名                    testAdd()

    b. 返回值:void

    c. 参数列表:空参

  3、给方法加@Test注解

  4、导入junit依赖环境(导入junit包,然后引入Test类才能使用注解)

  • 判断结果

   a. 红色代表失败;绿色代表成功

   b. 一般我们会使用断言操作来处理结果

    Assert.assertEquals(期望的结果, 运算的结果);

package com.itheima.day01.test;

public class Calculator {
    public int add(int a,int b){
        return a-b;
    }

    public int sub(int a,int b){
        return a-b;
    }
}
package com.itheima.day01.test;

import org.junit.Assert;
import org.junit.Test; public class CalculatorTest { @Test public void testAdd(){ //1.创建计算器对象 Calculator c = new Calculator(); //2.调用add方法 int result = c.add(1,2); // System.out.println(result); //3.断言 我断言这个结果为3 Assert.assertEquals(3,result); } @Test public void testSub(){ // System.out.println("我被执行了"); //1.创建计算器对象 Calculator c = new Calculator(); //2.调用sub方法 int result = c.sub(1,2); //3.断言 我断言这个结果为-1 Assert.assertEquals(-1,result); } }

执行testAdd结果:

执行testSub结果:

3、注解@Before、@After

  • @Before:修饰的方法会在所有测试方法之前被自动执行
  • @After:修饰的方法会在所有测试方法执行之后自动被执行

  不论测试方法是否出异常,这两个方法都会执行

package com.itheima.day01.test;

import org.junit.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class CalculatorTest {

    /**
     * 初始化方法:用于资源申请,所有测试方法在执行之前都会先执行该方法
     */
    @Before
    public void init(){
        System.out.println("init...");
    }

    /**
     * 释放资源方法:在所有测试方法执行完后都会自动执行该方法
     */
    @After
    public void close(){
        System.out.println("close...");
    }

    @Test
    public void testAdd(){
        //1.创建计算器对象
        Calculator c = new Calculator();
        //2.调用add方法
        int result = c.add(1,2);
//        System.out.println(result);

        System.out.println("testAdd...");
        //3.断言 我断言这个结果为3
        Assert.assertEquals(3,result);
    }

    @Test
    public void testSub(){
        //1.创建计算器对象
        Calculator c = new Calculator();
        //2.调用sub方法
        int result = c.sub(1,2);

        System.out.println("testSub...");
        //3.断言 我断言这个结果为-1
        Assert.assertEquals(-1,result);
    }
}

执行testAdd方法结果:

执行testSub方法结果:

 4、总结与补充

  @BeforeClass:针对所有测试,只执行一次,且必须为static void

  @Before:初始化方法

  @Test:测试方法,在这里可以测试期望异常和超时时间

  @After:释放资源

  @AfterClass:针对所有测试,只执行一次,且必须为static void

  @Ignore:忽略的测试方法 

  一个单元测试用例执行顺序为: @BeforeClass –> @Before –> @Test –> @After –> @AfterClass

  每一个测试方法的调用顺序为: @Before –> @Test –> @After

原文地址:https://www.cnblogs.com/ajing2018/p/15291519.html