Junit 学习笔记

625 阅读2分钟

这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战

Junit


一、Junit概述

  • 测试的分类:

    • 黑盒测试:封装代码,只显示输入和输出。通过比较实际的输出和预想的输出从而得到软件或者程序是否正确
    • 白盒测试:不封装代码,看过程和流程,思考代码是否高效,一般写代码。Junit测试属于白盒测试的一种。

二、 Junit的使用步骤

  • 定义一个测试类(测试用例)

    • 测试类名: 类名Test
    • 包名:xxx.xxx.xx.test 将测试类单独放在一个包之下
  • 定义一个测试方法(可以独立运行)

    • 方法名:test方法名
    • 返回值:void
    • 参数列表:空参
  • 给方法加上注解@Test

  • 【注意】:使用Junit单元测试的时候,看的是颜色

    • 红色代表出错

    • 绿色代表正常

    • 一般我们使用断言来进行结果的处理

      • Assert.assertEquals(期待值, 真实值);
 package com.zhang.test;
 ​
 import com.zhang.junit.Calculator;
 import org.junit.Assert;
 import org.junit.Test;
 ​
 public class CalculatorTest {
 ​
     // 测试add方法
     @Test
     public void testAdd(){
         // 创建对象
         Calculator calculator = new Calculator();
 ​
         // 测试方法
         int result = calculator.add(1 , 2);
         // System.out.println(result);
          /**因为输出不能0检测出代码的错误(想要的因为代码逻辑无法实现)
            * 所以我们用断言Assert和真实的结果进行比对*/
 ​
          Assert.assertEquals(3 , result);   // 断言成功
 //         Assert.assertEquals(4,result);     // 断言失败
 ​
     }
 ​
     // 测试sub方法
     @Test
     public void testSub(){
         Calculator calculator = new Calculator();
         int result = calculator.sub(2 , 1);
         System.out.println(result);
     }
 }

三、Junit的其他注解

  • @Before

    • 在所有测试方法被执行之前执行,一般用来申请资源
    • 所有的测试方法都会执行
  • @After

    • 在所有测试方法被执行之后执行,一般用来释放资源
    • 所有的测试方法都会执行
    • 即使出现了异常,也不会影响该方法的执行
 package com.zhang.test;
 ​
 import com.zhang.junit.Calculator;
 import org.junit.After;
 import org.junit.Assert;
 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");
     }
 ​
 ​
 ​
     // 测试add方法
     @Test
     public void testAdd(){
         // 创建对象
         Calculator calculator = new Calculator();
 ​
         // 测试方法
         int result = calculator.add(1 , 2);
         // System.out.println(result);
          /**因为输出不能0检测出代码的错误(想要的因为代码逻辑无法实现)
            * 所以我们用断言Assert和真实的结果进行比对*/
 ​
          Assert.assertEquals(3 , result);   // 断言成功
 //         Assert.assertEquals(4,result);     // 断言失败
 ​
     }
 ​
     // 测试sub方法
     @Test
     public void testSub(){
         Calculator calculator = new Calculator();
         int result = calculator.sub(2 , 1);
         System.out.println(result);
     }
 }