Junit单元测试

前言

本篇简要介绍白盒测试工具juint。

1测试分类

1.1黑盒测试

不需要写代码,给输入值,看程序是否能够输出期望的值。
在这里插入图片描述

1.2白盒测试

需要写代码的,关注程序具体的执行流程。而juint就是白盒测试中的一种。
在这里插入图片描述

2.juint操作步骤

2.1. 定义一个测试类(测试用例

			* 建议:
				* 测试类名:被测试的类名Test		CalculatorTest
				* 包名:xxx.xxx.xx.test		cn.itcast.test

2.2. 定义测试方法:可以独立运行

			* 建议:
				* 方法名:test测试的方法名		testAdd()  
				* 返回值:void
				* 参数列表:空参

2.3. 给方法加@Test

2.4. 导入junit依赖环境

	* 判定结果:
		* 红色:失败
		* 绿色:成功
		* 一般我们会使用断言操作来处理结果
			* Assert.assertEquals(期望的结果,运算的结果);

	* 补充:
		* @Before:
			* 修饰的方法会在测试方法之前被自动执行
		* @After:
			* 修饰的方法会在测试方法执行之后自动被执行

3.实例演示

创建目录如下:
在这里插入图片描述
Calculator类中代码如下:

package cn.itcast.juint;

public class Calculator {

    public int add(int a,int b){
        return a + b;
    }
    public int sub(int a,int b){
        return a - b;
    }

}

CalculatorTest类中代码如下:

package cn.itcast.test;

import cn.itcast.juint.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("初始化方法被执行");
    }

    @Test
    public void testAdd(){
        //1.创建对象
        Calculator c =new Calculator();
        //2.调用方法
        int result = c.add(1,2);
        System.out.println(result);
        //3.断言 即要求结果为某个值 不为该值就说明出错了
        Assert.assertEquals(3,result);
    }

    /*
    清除资源方法 应在最后执行
     */
    @After
    public  void delete(){
        System.out.println("资源被释放");
    }
}

实验结果如下:
在这里插入图片描述

4.面试知识点

4.1黑盒测试、灰盒测试、白盒测试、单元测试有什么区别?

黑盒测试关注程序的功能是否正确,面向实际用户

白盒测试关注程序源代码的内部逻辑结构是否正确,面向编程人员

灰盒测试介于白盒测试与黑盒测试之间的一种测试。

单元测试(Unit Testing) 是对 软件基本组成单元进行的测试,如函数或是一个类的方法。这里的单元,就是软件设计的最小单位

4.2白盒测试和黑盒测试的优缺点
黑盒测试的优点有 :

  1. 比较简单,不需要了解程序的内部的代码及实现
  2. 与软件的内部实现无关
  3. 从用户的角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题
  4. 基于软件开发文档,所以也能知道软件实现了文档中的哪些功能
  5. 在做软件自动化测试时较为方便

缺点 :

  1. 不可能覆盖所有的代码, 覆盖率较低,大概只能达到总代码量的30%

  2. 自动化测试的复用性较低。

白盒测试的优点有 :

  1. 帮助软件测试人员增大代码的覆盖率。 提供代码的质量,发现代码中隐藏的问题
    缺点 :

  2. 程序运行会有很多不同的路径,不可能测试所有的运行路径

  3. 测试基于代码,只能测试开发人员做的对不对,而不能知道设计是否正确,可能会漏掉一些功能需求

  4. 系统庞大时,测试开销会非常大。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值