Junit就是做测试用的,想想平常我们是怎么测试我们的方法或者类的,是不是在main方法里面去调用?这样有缺点:

1.每次都要在main方法里面写测试,假如我要上线新系统,里面有1000个方法需要测试,那我写一千个?测试完再删掉?

2.main方法都是写功能代码,功能逻辑代码和测试代码放在一起不太好

  为了解决这个测试的问题,Junit应运而生。我们来讲讲Junit的用法吧

Idea编译器默认安装了Junit,支持Junit3\4\5的创建,我们这里介绍一下3和4

一、Junit3

Junit3是Java5之前的东西,特点:

1.类必须继承TestCase

2.方法必须是public void 且必须以test开头,抛出异常

package com.StadyJava.day2;

import junit.framework.TestCase;

public class JunitDemo extends TestCase {

    public void testAdd() throws Exception{
System.out.println("测试添加");
}
public void testDelete() throws Exception{
System.out.println("测试添加");
}
}

在方法上右击可以单独运行,也可以右击类,直接运行类

二、Junit4

Junit4是Java5之后的东西,特点:

1.支持注解

2.方法必须是public void 不是必须test开头(但是一般还是test开头,看着规范好看点),抛出异常,方法必须写注解

package com.StadyJava.day2;

import org.junit.*;

public class JunitDemo {

//    介绍几个常用的注解
// @Test:测试用的常用注解
// @Before:测试开始之前执行,每个方法都执行一次
// @After:测试结束之后执行,每个方法都执行一次
// @BeforeClass:测试开始之前执行,只执行一次,必须加static
// @AfterClass:测试结束之后执行,只执行一次,必须加static @BeforeClass
public static void staticinit() throws Exception{
System.out.println("staticinit");
}
@AfterClass
public static void staticdestory() throws Exception{
System.out.println("staticdestory");
}
@Before
public void init() throws Exception{
System.out.println("初始化");
}
@After
public void destory() throws Exception{
System.out.println("销毁");
} @Test
public void testAdd() throws Exception{
System.out.println("测试添加");
}
@Test
public void testDelete() throws Exception{
System.out.println("测试删除");
}
}

三、断言

  上面学习了Junit的基本创建,现在来学习一下断言,断言其实用的不是特别多,还是了解一下

断言:

期望值:希望的结果是什么

实际值:实际得到的结果是多少

断言成功:期望值和实际值相同,显示绿条

断言失败:期望值和实际值不同,显示红条

下面列举了一些常用的断言方法:

 @Test
public void DuanYan() { //方法1 断言两个值是否相等
//message:断言失败提示的信息
//expecter:期望值
//actual:实际值
Assert.assertEquals("断言失败,两个值不等",4,2+2); //方法2 断言两个对象的地址相同,地址相同就是同一个对象
Assert.assertSame("断言失败,地址不同不是一个对象",1,1);
//方法3 断言两个对象的地址不同,上面方法的反例面
Assert.assertNotSame("断言失败,地址相同了是同一个对象",1,2);
//方法4 断言condition是True
Assert.assertTrue("断言失败,不是True",true);
//方法5 断言condition是False
Assert.assertFalse("断言失败,不是False",false);
//方法6 断言object是null
Assert.assertNull("断言失败,不是null",null);
//方法7 断言object不是null
Assert.assertNotNull("断言失败,是null",1); //@Test(expected = ArithmeticException.class) 期望该方法报错,报ArithmeticException错误,比如除数为0
//@Test(timeout = 2000) 期望该方法在2秒之内完成 }

Java测试Junit的更多相关文章

  1. java 测试 (junit+ junit 断言 + postman)

    实际开发中,除了开发,我想测试也是必不可少的一环吧.从简单的@Test .main 方法测试 到 页面测试 ,断言,postman. bug是无处不在,随时发生的事,高效率的调试.检测可以节省大量的开 ...

  2. Java测试工具使用(1)--Junit

    在进行测试之前需要导入junit的两个包,分别是 junit:4.12;hamcrest-core:1.1 1.基本测试标签 @Test.@Before.@After 2.组测试 有时候多个测试文件, ...

  3. 【java测试】Junit、Mock+代码覆盖率

    原文见此处 单元测试是编写测试代码,用来检测特定的.明确的.细颗粒的功能.单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的. 单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代 ...

  4. Java测试工具

    1.   开源测试工具: http://www.open-open.com/43.htm 2.   10款常用的JAVA测试工具 :http://developer.51cto.com/art/200 ...

  5. 如何使用 Java 测试 IBM Systems Director 的 REST API

    转自: http://www.ibm.com/developerworks/cn/aix/library/au-aix-systemsdirector/section2.html 如何使用 Java ...

  6. Java 工具 JUnit单元测试

    Java 工具 JUnit单元测试 @author ixenos 1.1.   JUnit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个 ...

  7. java自动化-junit框架简述

    本人使用的是java的junit框架来组织的自动化测试,故我这边需要简单介绍一下junit框架 首先,建议自行百度一下junit框架,先有一个大概的了解 所谓的接口自动化测试,会对多个接口中每一个接口 ...

  8. Java单元测试(Junit+Mock+代码覆盖率)

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  9. Java测试工具和框架

    个人目前只接触过JUnit以及Powermock,后续会关注更多有关测试这方面的东西 8个超实用的Java测试工具和框架_开发/数据库_IT专家网 http://database.ctocio.com ...

随机推荐

  1. 洛谷P1781宇宙总统题解

    题目 此题原本是一个简单的排序,但因为数据范围的限制,所以变成了一个需采用字符串排序的题目,接下来我将给大家讲一下如何字符串排序. 首先先判断为位数上是否相同,如果不同再比较那一位的数就可以了 #in ...

  2. jsp大学作业:jsp编写单选,复选判断题及得分情况

    project_1_1.jsp <%@ page contentType="text/html;charset=utf-8" language="java" ...

  3. Katu Puzzle POJ - 3678(水2 - sat)

    题意: 有n个未知量,m对未知量之间的关系,判断是否能求出所有的未知量且满足这些关系 解析: 关系建边就好了 #include <iostream> #include <cstdio ...

  4. 【BZOJ3522】【BZOJ4543】【POI2014】Hotel 树形DP 长链剖分 启发式合并

    题目大意 ​ 给你一棵树,求有多少个组点满足\(x\neq y,x\neq z,y\neq z,dist_{x,y}=dist_{x,z}=dist_{y,z}\) ​ \(1\leq n\leq 1 ...

  5. hdu 5510 Bazinga (KMP+暴力标记)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5510 思路: 一开始直接用KMP莽了发,超时了,后面发现如果前面的字符串被后面的字符串包含,那么我们就 ...

  6. mysql索引技巧

    索引 索引是对数据表一列或多列的值进行排序的一种结构,用于加速基于索引字段的数据排序以及优化查询的执行速度,避免全表扫描.索引是直接影响数据库性能的数据库模式对象,因此十分重要.在定义主键和唯一键约束 ...

  7. MT【270】含参绝对值函数最大之二

    已知$f(x)=2ax\cos^2x+(a-1)\cos x-1,a>0$,记$|f(x)|$的最大值为$A$,1)求A.2)证明:$|-2a\sin 2x+(1-a)\sin x|\le 2A ...

  8. 【BZOJ3167】[HEOI2013]SAO(动态规划)

    [BZOJ3167][HEOI2013]SAO(动态规划) 题面 BZOJ 洛谷 题解 显然限制条件是一个\(DAG\)(不考虑边的方向的话就是一棵树了). 那么考虑树型\(dp\),设\(f[i][ ...

  9. 【LOJ#6073】距离(主席树)

    [LOJ#6073]距离(主席树) 题面 LOJ 题解 两点间的距离是\(dep[x]+dep[y]-2dep[LCA]\). 那么题目要求的东西拆开维护,唯一不好做的就是\(2dep[LCA]\). ...

  10. Nowcoder | [题解-N210]牛客OI月赛2-提高组

    比赛连接戳这里^_^ 我才不会说这是我出的题(逃) 周赛题解\((2018.10.14)\) \(T1\) \(25\sim50\)分做法\(:\)直接爆搜 作为一个良心仁慈又可爱的出题人当然\(T1 ...