文档章节

JUnit小整理

Rickxue
 Rickxue
发布于 2015/12/02 11:07
字数 818
阅读 16
收藏 0

    JUnit是java单元测试工具。

    一、在项目中构建单元测试的一些规则:‘

        1.新建一个源代码目录来存放我们的测试代码,通常命名为:test

        2.测试类的包应该和测试类保持一致。

        3.测试单元中的每个方法必须可以单独测试,测试方法不能有任何的依赖。

        4.测试方法必须使用public void 经行修饰,不能带任何的参数。

        5.测试方法使用test作为方法的前缀。【不是必须的】

        6.测试类使用Test类作为类名的后缀。【不是必须的】

        注意:[eclipse]通常可以直接在测试类上面,单击右键来创建一个JUnitl测试类,eclipse会自动生成与测试类相对应             的包名。测试方法等以上规则)

    二、对于JUnit的测试结果说明

        1.Failure一般由单元测试使用的断言方法判断失败所引起的,这表示测试点发现了问题,那程序输出的结果和我们预期的结果不一样造成。

        2.error是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中的一个隐藏的bug。

        3.测试用例是用来证明你没有错,而不是用来证明你是对的。

    三、@Test属性

        1.@Test(expected = XX.class) 捕获异常。如果程序捕获达到相对应的XX.class异常,那么程序也表示成功。如果出             现其他异常,则会报错。

        2.@Test(timeout = 毫秒)测试代码块的运行时间。当到达该时间时,如果程序还没执行完成,那么程序也将退出。

    四、测试套测 @RunWith(XX.class)

        1.测试套件就是组织测试类一起运行的入口类。

            a).写一个作为测试套件的入口类,这个类里面不包含其他的方法。

            b).更改测试运行器XX.class.

            c).将要测试的类作为数组传入到 @Suite.SuiteClasses({test1.class,test2.class.....  }),

@RunWith(Suite.class)
@Suite.SuiteClasses({TaskTest1.class,TaskTest2.class})
public class SuiteTest {
    //不可以包含其他方法
}

   五、JUnit中的参数化设置

        1.更改默认的测试运行器为@RunWith(XX.class)

        2.声明变量来保存预期值和结果值。

        3.声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰。

        4.为测试类声明一个带参数的公共构造函数并在其中为声明变量赋值。

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;

import com.sun.org.glassfish.gmbal.ParameterNames;

/** 
* @author 作者 E-mail: xuebinlu@163.com
* @version 创建时间:2015年12月1日 下午9:31:47 
* 对于最上面的import static 静态导入,这个和平时的import导入的区别在于,前者导入以后,在当前类下不用再使用类名调用,直接调用导入类的静态方法就行,而后者这需要通过导入类的类名来调用静态方法。 
*/
@RunWith(Parameterized.class)
public class ParameterTest {

	int expected = 0;
	int input1 = 0;
	int input2 = 0;
	
	@Parameters
	public static Collection<Object[]> t(){
		return Arrays.asList(new Object[][]{
			{6,1,5},
			{5,2,3}
		});
	}
	
	public ParameterTest(int expected, int input1, int input2) {
		super();
		this.expected = expected;
		this.input1 = input1;
		this.input2 = input2;
	}

	@Test
	public void test() {
		assertEquals(expected,new Calculate().add(input1, input2));
	}

}



© 著作权归作者所有

Rickxue
粉丝 5
博文 43
码字总数 16647
作品 0
程序员
私信 提问
JUnit 4.12 发布,Java 单元测试框架

JUnit 4.12 发布,此版本支持命令行选项;改进了断言,异常测试,超时测试等等测试方法。更新内容请见发行说明。 此版本现已提供下载: junit-4.12-javadoc.jar junit-4.12-sources.jar juni...

唐伟
2014/12/08
10.9K
4
JUnit 5.2.0 发布,Java 单元测试框架

JUnit 5.2.0 发布,JUnit 5.2.0 = Platform 1.2.0 + Jupiter 5.2.0 + Vintage 5.2.0,此次更新包括构建工具的增强、参数化测试的改进等。 更新信息如下: 构建工具功能增强以支持新的模块化体...

h4cd
2018/05/04
1K
2
JUnit 4.13 Beta 1 发布,Java 单元测试框架

JUnit 4.13 版本的首个 Beta 版已发布。 JUnit 是一个 Java 语言的单元测试框架。它有自己的 JUnit 扩展生态圈,多数 Java 开发环境都已经集成了JUnit 作为单元测试的工具。JUnit 测试是程序...

局长
2018/11/27
660
4
JUnit 5.0.0 发布,Java 单元测试框架

JUnit 5.0.0 发布了。JUnit 5.0.0 = Platform 1.0.0 + Jupiter 5.0.0 + Vintage 4.12.0。JUnit 5 由三个不同的模块组成: JUnit 平台,其主要作用是在 JVM 上启动测试框架。它定义了一个抽象...

达尔文
2017/09/11
2.1K
12
在使用spring和junit是遇到的java.lang.noSuchMethodError异常

今天在使用使用spring框架时,用junit进行单元测试是遇到了如下异常,后来上网查阅了一番之后说是spring和junit有着版本兼容的问题,我使用的spring是4.24版本,junit使用的是4.11版本,jun...

ljm12345
2018/03/24
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
4
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
6
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
4
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
992
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部