Junit单元测试

## 测试分类

黑盒测试,白盒测试

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

白盒测试,需要写代码的,关注程序的具体执行流程

Junit使用

是白盒测试

    ### 步骤

#### 1,定义一个测试类(测试用例)
建议:
• 测试类名:被测试的类名Test

• 包名:xxx.xxx.xx.test
        #### 2,定义测试方法:最好可以独立运行
建议:
方法名:test测试的方法名
返回值:viod
参数:空参
        #### 3,建议加@Test注释(加这个得加上junit依赖)
    #### 4,判断结果,

控制台 红的失败

绿的成功。

这里的话,一般用断言操作来处理

代码:

Assert.assertEquals(期望结果,运算结果)
public class Junit {
public long add(long a , long b){
    return a+b;
}
}


public class Test1 {
@Test
public void yunsuan(){

    ---->这里 Assert.assertEquals(4, new Junit().add(1, 2));

}
}
控制台结果:

java.lang.AssertionError:
预期:4
实际:3
<点击以查看差异>

两个注解

初始化方法:

用于所有资源申请,所以测试方法在执行前都会先执行该方法

加上注解

@Before

释放资源的方法:

在所有测试方法执行完后,都会自动执行该方法

加上注解

@After

反正就是

先在测试方法(Test注解)前执行有Before注解方法,在测试方法(Test注解)后执行After注解的方法

这些都是自动执行的

提醒:

用其他方法调用测试方法的时候,测试方法就是普通方法。

在直接编码时,所有测试方法都会走一遍,来个例子吧

public class Test1 {
int b=0;
  static Test1 t=new Test1();
   
  public long add(long a , long b){
      return a+b;
  }
  public long jianfa(long a , long b){
      return a-b;
  }
  public long chengfa(long a ,long b){
      return a*b;
  }

   
  @Before
  public void before(){
      System.out.println("我先执行,算个1-1的减法吧:1-1="+t.jianfa(1,1));
  }
   
  @Test
  public void yunsuan(){
      System.out.println("测试第一次加法对不对:2是否等于1+2:"+(2==t.add(1,2)));
      b++;
      if (b!=10){
          t.yunsuan2();
      }
  }
   
  @Test
  public void yunsuan2(){
      System.out.println("测试第二次加法对不对:2是否等于1+1:"+(2==t.add(1,1)));
      b++;
      if (b<=20){
          t.yunsuan();
      }

  }
  @After
  public void after(){
      System.out.println("我最后执行个2*3的乘法:2*3="+t.chengfa(2,3));
  }


}

以上代码会把@Test1跑完,再跑@Test2,运算结果会是这样

Junti单元测试的更多相关文章

  1. Spring框架的第三天

    ## Spring框架的第三天 ## ---------- **课程回顾:Spring框架第二天** 1. IOC的注解方式 * @Value * @Resource(name="" ...

  2. Intellij idea添加单元测试工具

    1.idea 版本是14.0.0 ,默认带有Junit,但是不能自动生成单元测试,需要下载JunitGererator2.0插件 2.Settings -Plugins,下载 JunitGenerat ...

  3. Python的单元测试(二)

    title: Python的单元测试(二) date: 2015-03-04 19:08:20 categories: Python tags: [Python,单元测试] --- 在Python的单 ...

  4. Python的单元测试(一)

    title: Python的单元测试(一) author: 青南 date: 2015-02-27 22:50:47 categories: Python tags: [Python,单元测试] -- ...

  5. javascript单元测试框架mochajs详解

    关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...

  6. 使用NUnit为游戏项目编写高质量单元测试的思考

    0x00 单元测试Pro & Con 最近尝试在我参与的游戏项目中引入TDD(测试驱动开发)的开发模式,因此单元测试便变得十分必要.这篇博客就来聊一聊这段时间的感悟和想法.由于游戏开发和传统软 ...

  7. 我这么玩Web Api(二):数据验证,全局数据验证与单元测试

    目录 一.模型状态 - ModelState 二.数据注解 - Data Annotations 三.自定义数据注解 四.全局数据验证 五.单元测试   一.模型状态 - ModelState 我理解 ...

  8. ABAP单元测试最佳实践

    本文包含了我在开发项目中经历过的实用的ABAP单元测试指导方针.我把它们安排成为问答的风格,欢迎任何人添加更多的Q&A's,以完成这个列表. 在我的项目中,只使用传统的ABAP report. ...

  9. python_单元测试unittest

    Python自带一个单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 步骤1:首先引入unittest模块--import un ...

随机推荐

  1. 代码块及final关键字的使用

    1.代码块的作用:用来初始化类.对象 2.代码块如果有修饰的话,只能使用static. 3.分类:静态代码块 vs 非静态代码块 4.静态代码块 内部可以有输出语句 随着类的加载而执行,而且只执行一次 ...

  2. vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)

    文章目录 1.实现的效果 2.编写的js文件(这里写在了api文件下) 3.在vue页面中引入(script) 4.页面代码 1.实现的效果 20220606_154646 2.编写的js文件(这里写 ...

  3. go-zero docker-compose 搭建课件服务(七):prometheus+grafana服务监控

    0.转载 go-zero docker-compose 搭建课件服务(七):prometheus+grafana服务监控 0.1源码地址 https://github.com/liuyuede123/ ...

  4. Spring Boot 中使用 Swagger

    前后端分离开发,后端需要编写接⼝说明⽂档,会耗费⽐较多的时间. swagger 是⼀个⽤于⽣成服务器接⼝的规范性⽂档,并且能够对接⼝进⾏测试的⼯具. 作用 ⽣成接⼝说明⽂档 对接⼝进⾏测试 使用步骤 ...

  5. go:快速添加接口方法及其实现

    问题描述 在大型项目中,通常存在多个模块,模块对外暴露的功能通常是通过接口封装,这样可以明确模块的功能,有效降低模块与模块之间的耦合度,同时模块与模块之间进行合理的组装.接口的实现,有时可能存在多个实 ...

  6. CSS处理器-Less/Scss

    HTML系列: 人人都懂的HTML基础知识-HTML教程 HTML元素大全(1) HTML元素大全(2)-表单 CSS系列: CSS基础知识筑基 常用CSS样式属性 CSS选择器大全48式 CSS布局 ...

  7. BigDecimal精度详解

    [BigDecimal精确度的计数保留法及精度丢失的解决办法] 目录 BigDecimal精确度的计数保留法 1.ROUND_UP 2.ROUND_DOWN 3.ROUND_HALF_UP 4.ROU ...

  8. 基于python的数学建模---灰色与模糊问题

    instance: 我们先对此数据集进行轮廓系数的计算 from sklearn import metrics import matplotlib.pyplot as plt from sklearn ...

  9. SPFA和链式前向星

    链式前向星 一种存储图的数据结构 建立一个结构体和一个数组加一个变量,这里的to代表边\((u,v)\)中的\(v\)结点,而\(edge\)数组的索引\(idx\)代表\(u\),其中\(w\)代表 ...

  10. IDEA项目下out与target目录的区别详解

    IDEA项目下out与target目录的区别详解 一.目录主要区别: out存放的是该项目下所有Module(模块)的编译结果. target存放的是单个Module的编译结果. 二.目录详解 out ...