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快速入门的更多相关文章

  1. JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识

    JAVA WEB快速入门系列之前的相关文章如下:(文章全部本人[梦在旅途原创],文中内容可能部份图片.代码参照网上资源) 第一篇:JAVA WEB快速入门之环境搭建 第二篇:JAVA WEB快速入门之 ...

  2. JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC

    接上篇<JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP.IOC)>,了解了Spring的核心(AOP.IOC)后,我们再来学习与实践Maven.Sp ...

  3. Java Web快速入门——全十讲

    Java Web快速入门——全十讲 这是一次培训的讲义,就是我在给学生讲的过程中记录下来的,非常完整,原来发表在Blog上,我感觉这里的学生可能更需要. 内容比较长,你可以先收藏起来,慢慢看. 第一讲 ...

  4. JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)

    接上篇<JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构.调试.部署>,通过一个简单的JSP WEB网站了解了JAVA WEB相关的知识,比如:Ser ...

  5. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

  6. 如何让一个Java新手快速入门?

    问题中问到如何让java新生快速入门,既然想快速入门的话那最简单粗暴的方法就是多看视频,加上跟着视频敲代码,刚开始可能不知道是什么意思,敲得多了就慢慢知道是什么意思了. 刚开始建议在网上找那种结合自己 ...

  7. java 多线程 快速入门

    ------------恢复内容开始------------ java 多线程 快速入门 1. 进程和线程 什么是进程? 进程是正在运行的程序它是线程的集合 进程中一定有一个主线程 一个操作系统可以有 ...

  8. 没有基础的初学者学java怎样快速入门?超全的学习路线图

    现在地球人都知道互联网行业工资高,上万都是小case,不值一提.可是对于大部分人来说,工资七八千都算很难了.那我也想学java,当程序员,赚大钱.可是作为一个初学者,怎样才可以快速入门呢?早点入门就可 ...

  9. java框架--快速入门

    spring快速入门    1.创建项目        1.1创建项目文件夹        1.2启动idea ->文件->打开->点击创建的项目文件夹        1.3右键创建 ...

随机推荐

  1. MyBatis-Plus-Generator配置

    本文仅对使用MyBatis-Plus的代码生成器配置做保存,适合使用了该插件的童鞋做参考. 内部有大量默认配置,有性趣的童鞋可以研究下源码. ps:官方文档更齐全http://mp.baomidou. ...

  2. TensorflowTensorflow细节-P158-slim的使用

    slim的使用 从以下细节可以看出先使用slim = tf.contrib.slim要回用,剩下的看看以下代码就懂了 import tensorflow as tf slim = tf.contrib ...

  3. html 摄像头画面水平翻转

    <video onloadedmetadata="" id="inputVideo" autoplay muted playsinline>< ...

  4. 洛谷P1052过河

    题目 不看数据范围的话是一个很简单的DP,可是加上数据范围之后就之前的做法就不行了. 所以我们考虑一下路径压缩. 小数据Code #include <iostream> #include ...

  5. (6)Go函数和函数式编程

    一.Go函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于"一等公民" ...

  6. CF1213F Unstable String Sort(差分)

    其实全部可以为同一种字符串,但题目要求\(k\)种,我们考虑开始尽可能不同,最后再取\(min\) 考虑\(A\),全部不同:再做\(B\),\(S[b_{i-1}]\le S[b_{i}]\)如果开 ...

  7. hive(3)HiveQL数据定义

    HiveQL与传统SQL区别 HiveQL是Hive的查询语言.与mysql的语言最接近,但还是存在于差异性,表现在:Hive不支持行级插入操作.更新操作和删除操作,不支持事物. 基本语法 数据库操作 ...

  8. [HackTheBox]WEB题目

    0x01 [50 Points] I know Mag1k 问题描述: Can you get to the profile page of the admin? 访问分配的地址,是一个带注册的登入页 ...

  9. Linux帮助指令

    1.介绍 当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助指令来了解这个指令的使用方法. 2.man 指令获得帮助信息 基本语法 man  [命令或者配置文件]    (功能描述:获得帮助信 ...

  10. 纯JavaScript开发飞机大战项目

    开发工具: HBuilder 编程语言:JavaScript 其他技术:Html + Css 项目截图:   视频:   源代码:   在线观看地址: (暂无) 百度网盘下载地址: 请加QQ群:915 ...