Junit初级编码(二)探索JUnit核心
序,Junit测试是单元测试的一个框架,提供了很多方法,供我们快速开展单元测试。现在就让我们慢慢学习Junit单元测试框架
一、Junit的三个核心概念测试类、测试集、测试运行器
1 测试类
公共的,包含一个无参构造函数,含有一个或几个测试方法(@Test注释)。没有为测试类定义测试集时,JUnit自动提供一个测试集。
2 测试集
把多个相关测试归入一组,可以使一个测试类,也可以包含多个测试类。
3 测试运行器
执行测试集的程序,JUnit4提供了一些测试运行器,如下:
|
二、使用参数化运行器Parameterized运行测试的例子
举一个org.junit.runners.Parameterized的例子:
在这个例子中,可以指定运行器为Parameterized,测运行器的特点是允许你使用不同的参数多次运行同一个测试。
解释:
1 必须使用@RunWith注释,并且Parameterized.class为参数值
2 声明变量
3 提供一个用@Parameters注释的方法
。。。未完待续。
package com; 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.Parameters;
import org.junit.runners.Parameterized; @RunWith(value = Parameterized.class)//指定测试运行器
public class ParameterizedTest { private double expected;
private double valueOne;
private double valueTwo; @Parameters
public static Collection<Integer[]> getTestParameters() {
return Arrays.asList(new Integer[][] { { 2, 1, 1 }, { 3, 2, 1 },
{ 4, 3, 1 } });
} public ParameterizedTest(double expected, double valueOne, double valueTwo) {
this.expected = expected;
this.valueOne = valueOne;
this.valueTwo = valueTwo;
} @Test
public void sum(){
APP app = new APP();
assertEquals(expected,app.getSum(valueOne, valueTwo),0);
System.out.println("--");
}
}
三、JUnitCore facade
org.junit.runner.JUnitCore,可以运行任何测试运行器
JUnitCore决定使用哪个运行器来运行你的测试。
四、自定义测试运行器
需继承自org.junit.runner.Runner.Runner类
五、用Suite来组合测试
Suite对象其实是一个运行器(Runner),可以执行测试类中所有@Test注释的方法。
测试集还可以嵌套,看下面示例:
//测试类A
public class TestCaseA{
@Test
public void testA1(){
//omitted
}
}
//测试类B
public class TestCaseB{
@Test
public void testB1(){
//omitted
}
}
//测试集合A
@RunWith(Suite.class)
@SuiteClasses({TestCaseA.class})
public class TestSuiteA { }
//测试集合B
@RunWith(Suite.class)
@SuiteClasses({TestCaseB.class})
public class TestSuiteB { } //测试集合,把测试集合A和测试集合B合成为一个大的测试集合
@RunWith(Suite.class)
@SuiteClasses({TestSuiteA.class,TestSuiteB.class})
public class MasterTestSuite { }
Junit初级编码(二)探索JUnit核心的更多相关文章
- Junit初级编码(一)第一个Junit测试程序
序,Junit测试是单元测试的一个框架,提供了很多方法,供我们快速开展单元测试.目前最新版本JAR包为4.12,官网地址为http://junit.org/ 一.第一个Junit测试程序 1 去官网下 ...
- [置顶] JUnit入门教程(二)
一:介绍 接着上次的课程,今天我们学习JUnit4的新特性 assertThat()方法,这种方式和其余的assert方法比起来,更加接进英语. 二:分析API API中的例子: 参数 T Actua ...
- 深入探索 JUnit 4
开始之前 关于本教程 引入 Java 5 注释为 JUnit 带来了显著改变,使它从一个受广大开发人员了解和喜爱的测试框架转变成了一个更为精简但却不那么为人熟知的框架.在本教程中,我将探讨 JUnit ...
- Junit初级篇
@Test介绍 @Test是我们在写测试脚本时最常用到的,大部分情况下如果没用这个注解,一个方法就不能成为测试用例.如下代码是一个最普通的测试脚本: import org.junit.Assert; ...
- 【单元测试】Junit 4(二)--eclipse配置Junit+Junit基础注解
1.0 前言 前面我们介绍了白盒测试方法,后面我们来介绍一下Junit 4,使用的是eclipse(用IDEA的小伙伴可以撤了) 1.1 配置Junit 4 1.1.1 安装包 我们需要三个jar ...
- Junit初级应用实例
Request: public interface Request { String getName(); } Response: public interface Response { String ...
- MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
在上一章中我们学习了<MyBatis学习总结(一)——ORM概要与MyBatis快速起步>,这一章主要是介绍MyBatis核心配置文件.使用接口+XML实现完整数据访问.输入参数映射与输出 ...
- GCD介绍(二): 多核心的性能
GCD介绍(二): 多核心的性能 概念 为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系).在低层,GCD全局dispatc ...
- spring batch(二):核心部分(1):配置Spring batch
spring batch(二):核心部分(1):配置Spring batch 博客分类: Spring 经验 java chapter 3.Batch configuration 1.spring ...
随机推荐
- CSS3盒模型display初探(display:box/display:flex)
可以实现水平等分切割等.日后在研究,做个记录. 首先要声明:display:box,像谷歌浏览器要加前缀识别码:display:-webkit-box; 然后才开始使用其属性,同时也是要带上前缀识别码 ...
- fbv (FrameBuffer Viewer)编译指南
fbv:FrameBuffer image Viewer,可在控制台下查看jpg,png,gif,bmp等格式的图片,可以结合FBTerm在控制台设置背景图片,也可在编译在嵌入式设备上使用.但是ubu ...
- windows核心编程读后感(待续)
自从大一读那本超厚的C程序设计以后,从来没有像这样慢慢地读一本书了.windows核心这本书足足看了2个多星期.一张张慢慢看,做笔记.感觉学到了很多基础的知识,关于内核方面的没有啥可以做实验的,都在看 ...
- roundup配置
原因:我需要一个简单的issue tracker why roundup: python,简单 找了半天的文档,找不到文档,只能自己慢慢试,试到现在,可以打开tracker页面,用户注册的时候可以发邮 ...
- python图形界面(GUI)设计
不要问我为什么要用 python 来做这种事,我回到“高兴咋地”也不是不可以,总之好奇有没有好的解决方案.逛了一圈下来,总体上来说,python 图形界面有以下几个可行度比较高的解决方案. 1. py ...
- MySQL时间函数,用起来比PHP还爽
前一篇写了PHP的时间函数(还是草稿),这一篇就写Mysql的时间函数吧.最近做的项目,关乎权限,于是自然而然的就与有效期联系在了一起.其中有一个功能是生成特殊表格,可以根据用户的选择,按周.月.季. ...
- 网络存储(四)之ISCSI的进阶
前言 上一篇博客中我们讲了如何搭建一个简单的iscsi网络存储系统,这块有个安全问题就是,任何知道target name的客户端都可以随意连接ISCSI服务器.但是很多时候,通过授权认证连接共享磁盘或 ...
- javascript之查找数组中最小/最大的数
实现原理:和数组的顺序查找很类似,都是逐个数据的比对. 废话不多说~ 代码如下: /* * 参数说明: * array:传入数组 ,例如:var arr = [5,7,66,78,99,103,126 ...
- c++编译错误提示及解决
IntelliSense: #error 指令: Please use the /MD switch for _AFXDLL builds 修改设置:工程(Project)-> 属性(Prope ...
- 新创建一个git远程仓库
1.git 服务器项目初始化已经完毕,请把相关的资料和源码上传到git服务器. 2.第一次需要clone,执行命令:git clone git@192.168.10.184:listenbox_mc_ ...