【Java】Junit快速入门
Junit介绍
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
Junit简单使用
1、新建一个普通的maven工程,引入依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
2、新建一个测试类JunitTest.java,并且写一个无入参,无返回值的普通方法,在方法上加上注解@Test,如下
package com.test.junite; import org.junit.Test; public class JunitTest { @Test
public void testJunit(){
System.out.println("测试Junit,简单使用...");
}
}
3、测试结果
Junit常用注解
1、与测试流程相关的4个注解
package com.test.junite; import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test; public class JunitFlowTest { /**
* 1、@BeforeClass修饰的方法会在所有方法被调用前被执行
* 而且该方法是静态的,所有当测试类被加载后接着就会运行它
* 而且在内存中它只会存在一份实例,它比较适合加载配置文件
* 2、@AfterClass所修饰的方法通常用来对资源的清理,如关闭数据库的连接
* 3、@Before和@After会在每个测试方法的前后各执行一次
*
*/ @BeforeClass
public static void setUpBeforeClass() throws Exception {
System.out.println("this is @BeforeClass ...");
} @AfterClass
public static void tearDownAfterClass() throws Exception {
System.out.println("this is @AfterClass ...");
} @Before
public void setUp() throws Exception {
System.out.println("this is @Before ...");
} @After
public void tearDown() throws Exception {
System.out.println("this is @After ...");
} @Test
public void test1() {
System.out.println("this is test1 ...");
} @Test
public void test2() {
System.out.println("this is test2 ...");
} }
运行结果如下:
2、与@Test相关的
package com.test.junite; import static org.junit.Assert.assertEquals; import org.junit.Ignore;
import org.junit.Test; public class AnnotationTest { /**
* @Test:将一个普通的方法修饰成为一个测试方法
* @Test(expected=XX.class)
* @Test(timeout=毫秒)
* @BeforeClass:它会在所有方法运行前被执行,static修饰
* @AfterClass:它会在所有方法运行后被执行,static修饰
* @Before:会在每一个测试方法运行前被执行一次
* @After:会在每一个测试方法运行后被执行一次
* @Ignore:所修饰的测试方法会测试运行器被忽略
* @RunWiht:可以更改测试运行器 org.junit.runner.Runner
*/
@Test(expected=ArithmeticException.class)
public void testDivide() {
assertEquals(3, 3 / 0);
} @Test(timeout=2000)
public void testTimeout() {
while (true) {
System.out.println("run forever ...");
}
} @Ignore
@Test
public void testIgnore() {
System.out.println("this is testIgnore ...");
}
}
Junit测试类编写原则
1、测试方法必须使用@Test进行修饰
2、测试方法必须使用public void 进行修饰,不能带任何参数
3、新建一个源码目录来存放我们的测试代码
4、测试类的包应该和被测试类保持一致
5、测试单元中的每个方法必须可以独立测试,测试方法间不能有任何依赖
6、测试类使用Test作为类名后缀(非必须)
7、测试方法使用test作为方法前缀(非必须)
【Java】Junit快速入门的更多相关文章
- JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识
JAVA WEB快速入门系列之前的相关文章如下:(文章全部本人[梦在旅途原创],文中内容可能部份图片.代码参照网上资源) 第一篇:JAVA WEB快速入门之环境搭建 第二篇:JAVA WEB快速入门之 ...
- JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC
接上篇<JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP.IOC)>,了解了Spring的核心(AOP.IOC)后,我们再来学习与实践Maven.Sp ...
- Java Web快速入门——全十讲
Java Web快速入门——全十讲 这是一次培训的讲义,就是我在给学生讲的过程中记录下来的,非常完整,原来发表在Blog上,我感觉这里的学生可能更需要. 内容比较长,你可以先收藏起来,慢慢看. 第一讲 ...
- JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)
接上篇<JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构.调试.部署>,通过一个简单的JSP WEB网站了解了JAVA WEB相关的知识,比如:Ser ...
- JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署
接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...
- 如何让一个Java新手快速入门?
问题中问到如何让java新生快速入门,既然想快速入门的话那最简单粗暴的方法就是多看视频,加上跟着视频敲代码,刚开始可能不知道是什么意思,敲得多了就慢慢知道是什么意思了. 刚开始建议在网上找那种结合自己 ...
- java 多线程 快速入门
------------恢复内容开始------------ java 多线程 快速入门 1. 进程和线程 什么是进程? 进程是正在运行的程序它是线程的集合 进程中一定有一个主线程 一个操作系统可以有 ...
- 没有基础的初学者学java怎样快速入门?超全的学习路线图
现在地球人都知道互联网行业工资高,上万都是小case,不值一提.可是对于大部分人来说,工资七八千都算很难了.那我也想学java,当程序员,赚大钱.可是作为一个初学者,怎样才可以快速入门呢?早点入门就可 ...
- java框架--快速入门
spring快速入门 1.创建项目 1.1创建项目文件夹 1.2启动idea ->文件->打开->点击创建的项目文件夹 1.3右键创建 ...
随机推荐
- MyBatis-Plus-Generator配置
本文仅对使用MyBatis-Plus的代码生成器配置做保存,适合使用了该插件的童鞋做参考. 内部有大量默认配置,有性趣的童鞋可以研究下源码. ps:官方文档更齐全http://mp.baomidou. ...
- TensorflowTensorflow细节-P158-slim的使用
slim的使用 从以下细节可以看出先使用slim = tf.contrib.slim要回用,剩下的看看以下代码就懂了 import tensorflow as tf slim = tf.contrib ...
- html 摄像头画面水平翻转
<video onloadedmetadata="" id="inputVideo" autoplay muted playsinline>< ...
- 洛谷P1052过河
题目 不看数据范围的话是一个很简单的DP,可是加上数据范围之后就之前的做法就不行了. 所以我们考虑一下路径压缩. 小数据Code #include <iostream> #include ...
- (6)Go函数和函数式编程
一.Go函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于"一等公民" ...
- CF1213F Unstable String Sort(差分)
其实全部可以为同一种字符串,但题目要求\(k\)种,我们考虑开始尽可能不同,最后再取\(min\) 考虑\(A\),全部不同:再做\(B\),\(S[b_{i-1}]\le S[b_{i}]\)如果开 ...
- hive(3)HiveQL数据定义
HiveQL与传统SQL区别 HiveQL是Hive的查询语言.与mysql的语言最接近,但还是存在于差异性,表现在:Hive不支持行级插入操作.更新操作和删除操作,不支持事物. 基本语法 数据库操作 ...
- [HackTheBox]WEB题目
0x01 [50 Points] I know Mag1k 问题描述: Can you get to the profile page of the admin? 访问分配的地址,是一个带注册的登入页 ...
- Linux帮助指令
1.介绍 当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助指令来了解这个指令的使用方法. 2.man 指令获得帮助信息 基本语法 man [命令或者配置文件] (功能描述:获得帮助信 ...
- 纯JavaScript开发飞机大战项目
开发工具: HBuilder 编程语言:JavaScript 其他技术:Html + Css 项目截图: 视频: 源代码: 在线观看地址: (暂无) 百度网盘下载地址: 请加QQ群:915 ...