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.在需要做测试的类的当前窗口,直接按快 ...
随机推荐
- LVM扩容之xfs文件系统
LVM的基础请见:https://www.cnblogs.com/wxxjianchi/p/9698089.html 一.放大LV的容量.放大容量是由内而外来操作的. 1.设置新的lvm分区:用fdi ...
- python基础-网络编程part02
TCP协议 TCP是传输控制协议,建立双向通道. 三次握手,建立连接 客户端向服务端发送建立连接的请求 服务端接收请求返回确认信息给客户端,并向客户端发送建立连接的请求 客户端接收请求返回确认信息给服 ...
- Java线程池实现
电脑的CPU资源是有限的,任务的处理速度与线程数量之间并不是正相关.当线程数量过多,CPU要频繁的在不同线程切换,反而会引起处理性能的下降.线程池中最大的线程数,是考虑多种因素来事先设定的,比如硬件的 ...
- 2. Python环境安装
Centos 下环境安装 我们通过pyenv来管理python环境,更好的帮助开发者避免在环境上出现各种各样的问题 准备工作 安装之前,确保已经安装了git yum install git -y 安装 ...
- mysql 插入string类型变量时候,需要注意的问题,妈的,害我想了好几个小时!!
很多人在用php+MySQL做网站往数据库插入数据时发现如下错误: 注册失败!Unknown column '1a' in 'field list' 结果发现用数字提交是没有问题的,其他如char型就 ...
- 八大机器学习框架对比及Tensorflow的优势
八大机器学习框架的对比: (1) TensorFlow:深度学习最流行的库之一,是谷歌在深刻总结了其 前身 DistBelief 的经验教训上形成的:它不仅便携.高效.可扩 展,还能再不同计算机上运 ...
- requests库核心API源码分析
requests库是python爬虫使用频率最高的库,在网络请求中发挥着重要的作用,这边文章浅析requests的API源码. 该库文件结构如图: 提供的核心接口在__init__文件中,如下: fr ...
- 【立即报名】解码AI大杀器:华为云GPU+Tensorflow 容器实战
导语: 人工智能的火热,带来了一波学习TensorFlow深度学习框架的热潮.聊深度学习免不了要用GPU,但目前GPU费用较高,对于个人学习者和创业公司来讲的话,按需配置的云GPU服务器是一个不错的选 ...
- Spring通过IOC帮我们做火鸡
一.IOC--setter注入 1.准备dmo 首先准备一只火鸡 public class Turkey { private int id; private String name; public i ...
- 《手把手教你》系列进阶篇之2-python+ selenium自动化测试 - python基础扫盲(详细教程)
1. 简介 这篇文章主要是分享讲解一下,如何封装自己用到的方法和类.以便方便自己和别人的调用,这样就可以避免重复地再造轮子. 封装(Encapsulation)是面向对象的三大特征之一(另外两个是继承 ...