15.junit测试类使用及注解
1.junit简介
JUnit是一个Java语言的单元测试框架,可以大大缩短你的测试时间和准确度。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
2.实现junitDemo示例
2.1首先创建一个project:

2.2然后输入项目名,点击finish:

2.3然后在src里创建我们要测试的mathDemo类:

2.4输入mathDemo类名,点击finish:

2.5 matchDemo类定义如下:
package com.my.mathdemo;
public class mathDemo {
public int add(int a,int b)
{
return a+b;
}
public int multiply(int a,int b)
{
return a*b;
}
}
接下来我们便来创建junit,来测试mathDemo类的add和multiply方法
2.6 然后我们创建一个junit测试类

2.7输入junit名,点击finish:

2.8 TestMyMath测试类如下所示:
public class TestMyMath {
@Test
public void testAdd() {
mathDemo math = new mathDemo();
assertEquals(math.add(11, 5), 16); //测试11+5是否等于16
assertEquals(math.add(3, 5), 9); //故意写个错误的加法测试
}
@Test
public void testMultiply() {
mathDemo math = new mathDemo();
assertEquals(math.multiply(10, 5), 50); //测试10*5是否等于50
}
}
在上面,我们故意写了一个错误的测试,然后run运行后,如下图所示,可以看到报错log:

3.为什么测试方法前面要加@Test?
这是jdk1.5新增加的注解功能,并且对于junit类而言,每个方法前的注解必须存在,否则会报错,因为编译器不知道这个方法是用来测试哪个用途上.
而@Test表示该方法为测试方法,除了@Test外还有:
- @BeforeClass : 该方法表示启动测试类对象测试之前启动的方法, 所以该方法必须是static 修饰的(可以通过类名直接访问).一般用来打开配置文件,初始化资源等
- @AfterClass :该方法表示测试类对象测试完成之后启动的方法, 所以该方法必须是static 修饰的(可以通过类名直接访问).一般用来关闭数据库,结束资源等
- @Before :该方法表示调用每个测试方法前都会被调用一次
- @After :该方法表示调用每个测试方法后都会被调用一次
- @Ignore :已经被忽略的测试方法 ,我们测试的话,会自动过滤掉
4.而JAVA内置注解有三种(除此外,还有其它注解,后面遇到在详细补充)
- @Deprecated : 表示该方法已被弃用(一般表示该方法不适合当前版本),一般会有最新的方法来替代它
- @Override: 覆盖父类方法
- @Suppvisewarning: 忽略警告,比如我们定义了一个未使用的变量,或者调用一个已经被弃用的方法(通过@Deprecated声明的方法),都会出现警告,通过该注解则可以忽略掉
@Suppvisewarning常用的参数有:
- @SuppressWarnings("all") : 告诉编译器忽略掉所有警告
- @SuppressWarnings("unused") : 告诉编译器忽略掉未定义了未使用的变量
- @SuppressWarnings("unchecked") : 告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。
- @SuppressWarnings("serial") : 如果编译器出现这样的警告信息:The serializable class WmailCalendar does notdeclare a static final serialVersionUID field of type long 使用这个注释将警告信息去掉。
- @SuppressWarnings("deprecation") : 如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。 使用这个注释将警告信息去掉。
- @SuppressWarnings("unchecked", "deprecation") : 告诉编译器同时忽略unchecked和deprecation的警告信息。
如下图所示,我们定义一个未使用的int i,则会出现警告:

双击后,可以看到已经忽略警告:

5.如果我们不想在junit里写测试方法.直接运行被测试的方法
在被测方法前面添加@Test即可,如下所示,比如测试DomParseTest类的DomTest方法:

未完待续,下章学习 16.XML语法、CDATA、约束(DTD、Schema)讲解
15.junit测试类使用及注解的更多相关文章
- Spring4.2.3+Hibernate4.3.11整合( IntelliJ maven项目)(使用Annotation注解)(Junit测试类)
1. 在IntelliJ中新建maven项目 给出一个建好的示例 2. 在pom.xml中配置依赖 包括: spring-context spring-orm hibernate-core mysql ...
- 在Eclipse中生成接口的JUnit测试类
在Spring相关应用中,我们经常使用“接口” + “实现类” 的形式,为了方便,使用Eclipse自动生成Junit测试类. 1. 类名-new-Other-java-Junit-Junit Tes ...
- Javaspring+mybit+maven中实现Junit测试类
在一个Javaspring+mybit+maven框架中,增加Junit测试类. 在测试类中遇到的一些问题,利用spring 框架时,里面已经有保密security+JWT设定的场合,在你的secur ...
- 高并发秒杀系统--junit测试类与SpringIoc容器的整合
1.原理是在Junit启动时加载SpringIoC容器 2.SpringIoC容器要根据Spring的配置文件加载 [示例代码] package org.azcode.dao; import org. ...
- Springboot测试类之@RunWith注解
@runWith注解作用: --@RunWith就是一个运行器 --@RunWith(JUnit4.class)就是指用JUnit4来运行 --@RunWith(SpringJUnit4ClassRu ...
- maven编译的时候排除junit测试类
maven项目中使用junit进行单元测试,在进行编译的时候,可以通过2种方式排除test测试类的编译. 有2种方式 : 使用命令的时候带上参数 mvn install -Dmaven.test.sk ...
- junit测试类防止事务回滚-工作心得
本随笔文章,由个人博客(鸟不拉屎)转移至博客园 发布时间: 2018 年 12 月 06 日 原地址:https://niaobulashi.com/archives/junit-test-rollb ...
- Idea如何快速生成Junit测试类
测试是保证代码必不可少的环节,自己构建测试方法太慢,并且命名也不规范,idea中提供了,一键构建测试结构的功能... 2.步骤 1.在需要做测试的类的当前窗口,直接按快捷键:按ctrl+shift+t ...
- IntelliJ IDEA快速自动生成Junit测试类
1.背景 测试是保证代码必不可少的环节,自己构建测试方法太慢,并且命名也不规范,idea中提供了,一键构建测试结构的功能...废话不多说,直接写步骤 2.步骤 1.在需要做测试的类的当前窗口,直接按快 ...
随机推荐
- day 22 面向对象的基础
面向对象: 1.简述编写和执行类中的方法的流程 class Foo: #类的编写 def func(): print("我爱你") obj = Foo() #类的调用和执行 obj ...
- spring日志体系浅析(spring 5.x)
日志是进行软件开发必不可少的一项功能,目前流行着很多开源日志库,比如log4j.log4j2.logback.JDK Logging.commons-logging.slf4j等. 几种日志产品的介绍 ...
- ES集群操作原理
路由 当你索引一个文档,它被存储在单独一个主分片上.Elasticsearch 是如何知道文档属于哪个分片的呢?当你创建一个新文档,它是如何知道是应该存储在分片 1 还是分片 2 上的呢? 进程不能是 ...
- 设计模式之观察者模式--PHP
列举一个场景:下班之后回家,打开家门,开始做饭,之后睡觉 以上场景如果按照传统的开始方式就是封装一个用户类,里面有回家方法,打开门方法,做饭方法,睡觉方法,之后在外面依次调用. 假设你代码开发完了,这 ...
- P3954 成绩
题目描述 牛牛最近学习了C++入门课程,这门课程的总成绩计算方法是: 总成绩=作业成绩\times 20\%+×20%+小测成绩×30\%+×30%+期末考试成绩\times 50\%×50% 牛牛想 ...
- 【Android - 控件】之MD - FloatingActionButton的使用
FloatingActionButton(FAB) 是 Android 5.0 新特性——Material Design 中的一个控件,是一种悬浮的按钮. FloatingActionButton 是 ...
- AWS re:Invent 2019 召开 | 云原生生态周报 Vol. 30
作者 | 何淋波.宋净超.徐迪 业界要闻 1. AWS re:Invent 2019 AWS 年度云计算盛会于 12.2-12.6 在拉斯维加斯举行. 技术分享超过 2500 场,技术方向涵盖数据分析 ...
- 堡垒机WebSSH进阶之实时监控和强制下线
这个功能我可以不用,但你不能没有 前几篇文章实现了对物理机.虚拟机以及Kubernetes中Pod的WebSSH操作,可以方便的在web端对系统进行管理,同时也支持对所有操作进行全程录像,以方便后续的 ...
- 01Shell入门02-echo和printf
输出方式 小知识 echo echo -e 可以控制字体颜色和背景颜色输出 示例 echo -e "\033[41;36m Hello world \033[0m" [root@h ...
- 关于TC297的Flash写入之前是否需要先擦除的问题
通过实际测试,对TC297 Flash的一个地址空间可以重复执行写入操作(program),而不需要先对该区域所在扇区进行擦除. MPC5675K则需要在写入之前进行擦除.