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. Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。

    题目2:编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计.之后,可根据显示的内容进行某条记录的删除(以id为条 ...

  2. POJ1094 Sorting It All Out (floyd传递闭包)

    关系具有传递性,可以用floyd解决. 将关系都看做i<j的形式,令d[i][j]=1,如果d[i][j]=d[j][i]=1,说明矛盾:d[i][j]=d[j][i]=0,说明i与j的关系无法 ...

  3. POJ1681 Painter's Problem(高斯消元)

    题目看似与线性方程组无关,但可以通过建模转化为线性方程组的问题. 对于一块砖,刷两次是没有必要的,我们令x=1表示刷了一次,x=0没有刷,一共有n*n个,所以相当于有n*n个未知量x. 定义aij表示 ...

  4. 如何优雅的备份MySQL数据?看这篇文章就够了

    大家好,我是一灯,今天一块学习一下如何优雅安全的备份MySQL数据? 1. 为什么要备份数据 先说一下为什么需要备份MySQL数据? 一句话总结就是:为了保证数据的安全性. 如果我们把数据只存储在一个 ...

  5. 它让你1小时精通RabbitMQ消息队列(新增死信处理)

    支持.NET/.NET Framework/.NET Core RabbitMQ作为一款主流的消息队列工具早已广受欢迎.相比于其它的MQ工具,RabbitMQ支持的语言更多.功能更完善. 本文提供一种 ...

  6. 驱动开发:内核枚举ShadowSSDT基址

    在笔者上一篇文章<驱动开发:Win10枚举完整SSDT地址表>实现了针对SSDT表的枚举功能,本章继续实现对SSSDT表的枚举,ShadowSSDT中文名影子系统服务描述表,SSSDT其主 ...

  7. Vue中组件化编码 完成任务的添加、删除、统计、勾选需求(实战练习三完结)

    上一个章节实现数据在组件之间的传递 .这一章主要是完成添加任务到任务栏.删除任务栏.统计任务完成情况.主要还是参数在各个组件之间的传递. 上一章节的链接地址:https://blog.csdn.net ...

  8. VS2022连接Oracle数据库所需包和连接字符串

    VS连接ORACLE数据库 l  VS2022连接ORACLE数据库时,需要引入Oracle.ManagedDataAccess.Core包. l  引入方式:打开VS2022==>项目==&g ...

  9. Java多线程-线程生命周期(一)

    如果要问我Java当中最难的部分是什么?最有意思的部分是什么?最多人讨论的部分是什么?那我会毫不犹豫地说:多线程. Java多线程说它难,也不难,就是有点绕:说它简单,也不简单,需要理解的概念很多,尤 ...

  10. Java函数式编程:二、高阶函数,闭包,函数组合以及柯里化

    承接上文:Java函数式编程:一.函数式接口,lambda表达式和方法引用 这次来聊聊函数式编程中其他的几个比较重要的概念和技术,从而使得我们能更深刻的掌握Java中的函数式编程. 本篇博客主要聊聊以 ...