• 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

  • 相关阅读:
    Squid报错:error the requested url could not be retriveved
    理解交换机的工作原理
    1_bytes和str
    2_Linux操作系统和基础命令行
    1_Linux概述
    好用的手机浏览器
    笔记(一):做前端开发以来几乎每天用到的东西!
    笔记(一):做前端开发以来几乎每天用到的东西!
    积累: .net里有个线程安全的int+1类
    积累: .net里有个线程安全的int+1类
  • 原文地址:https://www.cnblogs.com/ajing2018/p/15291519.html
Copyright © 2020-2023  润新知