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. Linux下多线程创建

    1.pthread_create Linux中线程创建用pthread_create函数 #include <pthread.h> int pthread_create( pthread_ ...

  2. 洛谷P2216 HAOI2007 理想的正方形 (单调队列)

    题目就是要求在n*m的矩形中找出一个k*k的正方形(理想正方形),使得这个正方形内最值之差最小(就是要维护最大值和最小值),显然我们可以用单调队列维护. 但是二维平面上单调队列怎么用? 我们先对行处理 ...

  3. FastJson序列化对象复杂时出错问题解决

    FastJson序列化对象复杂时出错问题解决 针对复杂的对象,如Map<String, List<Map<String, XxxObject<A, B, C>>&g ...

  4. CRT & EXCRT 学习笔记

    这玩意解决的是把同余方程组合并的问题. CRT的核心思想和拉格朗日插值差不多,就是构造一组\(R_i\)使得$\forall i,j(i \neq j) $ \[R_im_i = 1, R_im_j ...

  5. RAID5 IO处理之对齐读代码详解

    1 总体流程 当一个读请求的覆盖范围落在一个chunk范围内时为对齐读,流程图如下所示: 2 入口 在RAID5的IO处理函数 make_request() 一开始进行了对齐读的判断和处理,代码如下所 ...

  6. Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化

    参考书籍<mysql是怎样运行的> 非常推荐这本书,通俗易懂,但是没有讲mysql主从等内容 书中还讲解了本文没有提到的子查询优化内容, 本文只总结了常见的子查询是如何优化的 系列文章目录 ...

  7. golang开发一个简单的grpc

    0.1.索引 https://waterflow.link/articles/1665674508275 1.什么是grpc 在 gRPC 中,客户端应用程序可以直接调用不同机器上的服务器应用程序上的 ...

  8. python信息检索实验之向量空间模型与布尔检索

    import numpy as np import pandas as pd import math def bool_retrieval(string): if string.count('and' ...

  9. certutil做哈希校验并下载网络文件

    微软Win系统自带,不需要安装的工具,但它是CMD命令行工具,关于命令行工具的说明和使用请参考我以前的文章 Windows系统的命令行(CLI)介绍及入门使用说明 . 这个微软自带的命令行工具叫做 c ...

  10. Nginx配置-1

    1.绑定nginx到指定cpu [root@nginx conf.d]# vim /apps/nginx/conf/nginx.conf worker_processes 2; worker_cpu_ ...