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. mysql工具的使用、增删改查

    mysql工具使用 目录 mysql工具使用 mysql的程序组成 mysql工具使用 服务器监听的两种socket地址 mysql数据库操作 DDL操作 数据库操作 表操作 用户操作 查看命令SHO ...

  2. 【JavaScript排序】 sort()方法(解决null、undefined、0之间的排序(混乱)问题)

    JavaScript排序 - sort()方法 --解决null.undefined.0之间的排序(混乱)问题 一.普通的数组排序 ​ JavaScript中用方法sort()为数组排序.sort() ...

  3. java.util.Arrays----操作数组的工具类

    java.util.Arrays操作数组的工具类,里面定义了很多操作数组的方法 1.boolean equals(int[] a,int[] b):判断两个数组是否相等. 2.String toStr ...

  4. jsp和java的结合使用显示学生信息

    package com.zyz; public class Student { private String ID; // 学号 private String name; // 姓名 private ...

  5. js数组去重,id相同对某值相加合并

    js数组去重,id相同对某值相加合并 案例1: 假设需要处理的数组结构. let arr =[ {id:'1', value:10}, {id:'1', value:20}, {id:'2', val ...

  6. typora的简单使用

    一级标题 #+空格 或者快捷键ctrl+1 二级标题 ##+空格 或者快捷键ctrl+2 三级标题 ###+空格 或者快捷键ctrl+3 调试模式 开启调试模式:快捷键shift+F12 字体 Hel ...

  7. GIT入门与Gitee的使用

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 工作原理 / 流程: Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remo ...

  8. nginx安装及相关操作

    工作中经常用到nginx,今天写个自动部署nginx的脚本.nginx版本选用:1.20.2 1.创建nginx安装脚本(nginx.sh) [root@iZ2ze7uphtapcv51egcm7rZ ...

  9. R数据分析:孟德尔随机化实操

    好多同学询问孟德尔随机化的问题,我再来尝试着梳理一遍,希望对大家有所帮助,首先看下图1分钟,盯着看将下图印在脑海中: 上图是工具变量(不知道工具变量请翻之前的文章)的模式图,明确一个点:我们做孟德尔的 ...

  10. 6个tips缓解第三方访问风险

    随着开发和交付的压力越来越大,许多企业选择依赖第三方来帮助运营和发展业务.值得重视的是,第三方软件及服务供应商和合作伙伴也是云环境攻击面的重要组成部分.尽管企业无法完全切断与第三方的关联,但可以在向他 ...