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.在需要做测试的类的当前窗口,直接按快 ...
随机推荐
- 基于Pytorch的简单小案例
神经网络的理论知识不是本文讨论的重点,假设读者们都是已经了解RNN的基本概念,并希望能用一些框架做一些简单的实现.这里推荐神经网络必读书目:邱锡鹏<神经网络与深度学习>.本文基于Pytor ...
- 【RN - 基础】之React Native组件的生命周期
下图描述了React Native中组件的生命周期: 从上图中可以看到,React Native组件的生命周期可以分为初始化阶段.存在阶段和销毁阶段. 实例化阶段 实例化阶段是React Native ...
- Centos 6、7 禁止密码验证登陆
Centos 6.7 禁止密码验证登陆 安全方面的考虑,秘钥对验证登陆相对密码验证要更安全 修改 /etc/ssh/sshd_config 配置文件 该配置文件中,只需要修改一个参数 Password ...
- mysql 中文不显示问题
MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation).对于字符集的支持细化到四个层次: 服务器(ser ...
- node.js多进程架构
node.js是单进程应用,要充分利用多核cpu的性能,就需要用到多进程架构. 作为web服务器,不能多个进程创建不同的socket文件描述符去accept网络请求, 有经验的同学知道,如果端口被占用 ...
- 不给糖果就捣乱,用Python绘制有趣的万圣节南瓜怪【华为云分享】
关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日:而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints ...
- SpringBoot整合log4j2进行日志配置及防坑指南
写在前面 最近项目经理要求将原先项目中的日志配置logBack,修改为log4j2,据说是log4j2性能更优于logback,具体快多少,网上有说快10多倍,看来还是很快的,于是新的一波挑战又开始了 ...
- Redis面试热点之底层实现篇(续)
0.题外话 接着昨天的[决战西二旗]|Redis面试热点之底层实现篇继续来了解一下ziplist压缩列表这个数据结构. 你可能会抱有疑问:我只是使用Redis的功能并且公司的运维同事都已经搭建好了平台 ...
- js 实现 多层级对象合并
js 实现 多层级对象合并 首先 需求是使用js对数据的格式进行转换 把一个二维数组(包含层级信息,层级数是不固定的)list 转换为多层级的对象 我的思路就是 循环先把list里单条信息转换为 多层 ...
- 利用etcd实现服务注册和服务发现
文章目录 服务注册 服务发现 协议编写 服务端实现 客户端实现 实验结果 参考文章 服务注册 主要逻辑在go func函数里面,先是去etcd获取一下服务,没有获取到的话就注册进去. package ...