Java测试Junit
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的更多相关文章
- java 测试 (junit+ junit 断言 + postman)
实际开发中,除了开发,我想测试也是必不可少的一环吧.从简单的@Test .main 方法测试 到 页面测试 ,断言,postman. bug是无处不在,随时发生的事,高效率的调试.检测可以节省大量的开 ...
- Java测试工具使用(1)--Junit
在进行测试之前需要导入junit的两个包,分别是 junit:4.12;hamcrest-core:1.1 1.基本测试标签 @Test.@Before.@After 2.组测试 有时候多个测试文件, ...
- 【java测试】Junit、Mock+代码覆盖率
原文见此处 单元测试是编写测试代码,用来检测特定的.明确的.细颗粒的功能.单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的. 单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代 ...
- Java测试工具
1. 开源测试工具: http://www.open-open.com/43.htm 2. 10款常用的JAVA测试工具 :http://developer.51cto.com/art/200 ...
- 如何使用 Java 测试 IBM Systems Director 的 REST API
转自: http://www.ibm.com/developerworks/cn/aix/library/au-aix-systemsdirector/section2.html 如何使用 Java ...
- Java 工具 JUnit单元测试
Java 工具 JUnit单元测试 @author ixenos 1.1. JUnit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个 ...
- java自动化-junit框架简述
本人使用的是java的junit框架来组织的自动化测试,故我这边需要简单介绍一下junit框架 首先,建议自行百度一下junit框架,先有一个大概的了解 所谓的接口自动化测试,会对多个接口中每一个接口 ...
- Java单元测试(Junit+Mock+代码覆盖率)
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...
- Java测试工具和框架
个人目前只接触过JUnit以及Powermock,后续会关注更多有关测试这方面的东西 8个超实用的Java测试工具和框架_开发/数据库_IT专家网 http://database.ctocio.com ...
随机推荐
- python optparser模块
python的内置模块中对于命令行的解析模块共两个getopt 和 optparse .不过getopt过于简单,往往不能满足需求.此时可以使用optparse模块.这个模块相对于getopt更新,功 ...
- 第五十五天 css基础入门
一.引入css的三种方式 1.行间式 <div style="width: 100px; height: 100px; background-color: red">& ...
- Mysql partition by
一,看原表 select * from `user`; 二,查询同组年级最大的 select username ,SUBSTRING_INDEX( GROUP_CONCAT(age order by ...
- ElasticHD Windows环境下安装
ElasticHD Linux环境下安装教程 ElasticHD windows环境下安装教程 习惯了T-SQL 查询,Elasticsearch的DSL查询语法简直就是反人类呀,一 ...
- Matplotlib学习---用matplotlib画热图(heatmap)
这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://datasets.flowingdata.com/ppg2008.csv ...
- MT【300】余弦的三倍角公式
2017清华大学THUSSAT附加学科测试数学(二测)$\cos^5\dfrac{\pi}{9}+\cos^5\dfrac{5\pi}{9}+\cos^5\dfrac{7\pi}{9}$ 的值为___ ...
- Hdoj 1846.Brave Game 题解
Problem Description 十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中 ...
- 【原创】线段树query模板对比! 新手线段树的一个容易出错的问题!!因为我就糊涂了一整天.......
我们解决问题的最好方法就是拿实例来举例子 我们来看tyvj1038或计蒜客 “管家的忠诚” 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管 ...
- Codeforces 1076D Edge Deletion(最短路树)
题目链接:Edge Deletion 题意:给定一张n个顶点,m条边的带权无向图,已知从顶点1到各个顶点的最短路径为di,现要求保留最多k条边,使得从顶点1到各个顶点的最短距离为di的顶点最多.输出m ...
- luogu3278/bzoj3323 多项式的运算 (splay)
mulx的操作,其实就是给r+1的系数+=r的系数,然后删掉r,把l~r-1向右移一位,再插一个0到原来的位置 splay维护区间加和区间乘就好了 (一定要注意做事的顺序,一件事都做完了再去做别的,否 ...