一、junit官网

junit4:http://junit.org/junit4/

junit5:http://junit.org/junit5/

二、github

junit4: https://github.com/junit-team/junit4

junit5: https://github.com/junit-team/junit5

三、下载和安装

https://github.com/junit-team/junit4/wiki/Download-and-Install

三、junit4运行流程

@Test

讲一个普通的方法修饰成测试方法

@BeforeClass

修饰的方法会在所有的方法调用前被调用,

而且该方法是静态的,所以当测试类被加载后就会运行他,

而且在内存中他只会存在一份实例,比较适合加载配置文件

@AfterClass 修饰的方式通常用来对资源的清理,如关闭数据库的连接
@Before 会在每个@Test修饰的方法的前各执行一次
@After 会在每个@Test修饰的方法的后各执行一次

三、junit4常用注解

1.@Test

1)@Test的两个属性

属性名 作用 实例
expected 声明了该测试方法应该抛出一个异常,如果抛出了说明测试成功 @Test{expected=XX.class}
timeout

设置测试方法的超时时间,超过时间测试方法就会停止

适用场景举例:比如有一个循环代码,循环控制条件不太好控制,这里

使用timeout就避免了一直等待

@Test{timeout=毫秒}

2.@Ignore

代表所修饰的测试方法会被测试运行器所忽略

3.@RunWith

可以更改测试运行器,自定义自己的运行器(必须继承org.junit.runner.Runner)

四、断言的使用

具体使用方法可参考官方文档:https://github.com/junit-team/junit4/wiki/Assertions

五、测试套件的使用

当有多个测试类,一个一个测试太麻烦了,可以使用如下测试套件

package com.dechy.test;

import org.junit.runner.RunWith;
import org.junit.runners.Suite; @RunWith(Suite.class)
@Suite.SuiteClasses({TaskTest1.class,TaskTest2.class,TaskTest3.class})
public class SuiteTest {
/**
* 1.测试套件就是组织测试类一起运行
*
* 写一个作为测试套件的入口类,这个类中不包含其他方法
* 更改测试运行器Suite.class
* 将要测试的类作为数组传到Suite.SuiteClasses({})
*/ }

六、junit的参数化设置

package com.dechy.util;

import static org.junit.Assert.*;

import java.util.Arrays;
import java.util.Collection; import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class)
public class ParameterTest {
/*
* .更改默认的测试运行器为RunWith(Parameterized.class)
* .声明变量来存放预期值 和结果值
* .声明一个返回值 为Collection的公共静态方法,并使用@Parameters进行修饰
* .为测试类声明一个带有参数的公共构造函数,并在其中为之声明变量赋值
*/
int expected =;
int input1 = ;
int input2 = ; @Parameters
public static Collection<Object[]> t() {
return Arrays.asList(new Object[][]{
{,,},
{,,}
}) ;
} public ParameterTest(int expected,int input1,int input2) {
this.expected = expected;
this.input1 = input1;
this.input2 = input2;
} @Test
public void testAdd() {
assertEquals(expected, new Calculate().add(input1, input2));
} }

Junit4知识梳理的更多相关文章

  1. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  2. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  3. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  4. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  5. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

  6. solr DIH 知识梳理

    solr DIH 知识梳理 web.xml中listener配置 <listener> <listener-class>org.apache.solr.handler.data ...

  7. Anliven - 基础知识梳理汇总 - 软件测试

    基础知识梳理 - 软件测试 - 概念 基础知识梳理 - 软件测试 - 分类 基础知识梳理 - 软件测试 - 流程 基础知识梳理 - 软件测试 - 用例 基础知识梳理 - 软件测试 - 方法 基础知识梳 ...

  8. [C# 基础知识梳理系列]专题六:泛型基础篇——为什么引入泛型

    引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...

  9. java基础知识梳理

    java基础知识梳理 1 基本数据类型

随机推荐

  1. win命令行下载

    1.certutil downloader (1) 保存在当前路径,文件名称同URL eg: certutil.exe -urlcache -split -f https://raw.githubus ...

  2. centos6.5下oracle自动备份删除指定天数的文件

    第一步先做一个备份 #!/bin/sh export ORACLE_BASE=/home/oracle/app export ORACLE_HOME=/dbhome_1 export ORACLE_S ...

  3. C# 保证数据长度相同

    /// <summary> /// 保证数据长度相同 /// </summary> /// <param name="obj"></par ...

  4. EF 数据迁移

    数据迁移: 在程序包管理器控制台,执行语句. 初始化: 1.Enable-Migrations -EnableAutomaticMigrations 2.Add-Migration InitialCr ...

  5. Kubernetes1.9 二进制版集群+ipvs+coredns

    节点构造如下 : 节点ip 节点角色 hostname 192.168.0.57 node bigdata3       192.168.0.56 node bigdata4       192.16 ...

  6. RPN(region proposal network)之理解

    在faster-r-cnn 中,因为引入rpn层,使得算法速度变快了不少,其实rpn主要作用预测的是 “相对的平移,缩放尺度”,rpn提取出的proposals通常要和anchor box进行拟合回归 ...

  7. python基础学习 Day19 面向对象的三大特性之多态、封装 property的用法(1)

    一.课前内容回顾 继承作用:提高代码的重用性(要继承父类的子类都实现相同的方法:抽象类.接口) 继承解释:当你开始编写两个类的时候,出现了重复的代码,通过继承来简化代码,把重复的代码放在父类中. 单继 ...

  8. mysql 拼接字符

    Mysql的查询结果行字段拼接,可以用下面两个函数实现: 1. concat函数 mysql> select concat('1','2','3') from test ; +--------- ...

  9. java 基础最全网站

    http://www.runoob.com/java/java-tutorial.html

  10. 对于“2017面向对象程序设计(Java)第五周工作总结”存在问题的反馈及本周教学计划

    一:问题反馈 “上周我们学习的新内容主要是第五章,并对第四章内容做了巩固.从学生上交的实验报告完成情况以及学习Java心得博客中的反馈可以看出,学生对构造器.重载.超类.多态.抽象类这几个概念理解的不 ...