1、导入Junit4jar包:

  Eclipse中在项目上右键点击Bulid Path,然后再点击Add libraries,选择JUnit

2、初次使用

首先先创建一个java项目如下:

Demo.java内容:

package cn.orlion.demo;

public class Demo {

    public int method1(int p1 , int p2){

        return p1 + p2;
} public int method2(int p1 , int p2){ return p1 - p2;
} public int method3(int p1 , int p2){ return p1 * p2;
}
}

然后在src上点击右键添加一个source folder命名为test,在test下创建包cn.orlion.demo(包名要与要测试的包名一致),然在在此包右键new一个JUnit Test Case,命名为DemoTest。

写测试类时有一些规范需要遵守:

  (1)测试方法上必须使用@Test进行修饰(2)测试方法必须用public void修饰不能带参数(3)需要新建一个源代码目录来存放测试代码(4)测试类的包必须要与被测试类包名一致(5)测试单元中的每个方法必须可以独立测试,方法间不能存在依赖(6)测试类使用Test作为后缀(7)测试方法使用test作为前缀

代码如下所示:

package cn.orlion.demo;

import static org.junit.Assert.*;

import org.junit.Test;

public class DemoTest {

    @Test
public void testMethod1(){ assertEquals(3 , new Demo().method1(2 , 1));
} @Test
public void testMethod2(){ assertEquals(1 , new Demo().method2(2 , 1));
} @Test
public void testMethod3(){ assertEquals(2 , new Demo().method3(2 , 1));
} }

现在的项目结构如图所示

在DemoTest.java类右键点击Run As -> JUnit Test结果如下所示:

(Failures一般是由测试方法中断言引起,这表示测试点出现了问题,证明被测试的方法返回的结果与我们预期的不一样

Errors一般是由被测试方法或者是测试方法中存在异常导致。)

状态条为绿色三个方法全部测试成功

3、JUnit运行流程

(1)@BeforeClass修饰的方法会在所有方法执行前执行,该方法是静态的,所以当测试类被加载后就会运行它,在内存中只会存在一份,适合加载配置文件

(2)@AfterClass修饰符修饰的方法会在所有方法执行后执行,通常用来清理资源,比如关闭流

(3)@Before和@After会在每个测试方法执行前后执行一次。

4、JUnit常用注解

(1)@Test

  @Test有个expected属性和timeout属性(@Test(expected=NullPointerException.class),@Test(timeout=1000))

  expected属性可以捕获测试方法和被测试方法中预期抛出的异常,timeout限定方法执行的时间

(2)@Ignore

  @Ignore修饰的方法不会被执行,可以@Ignore("此方法被忽略")做一个注释:此方法被忽略

(3)@RunWith可以更改测试运行器org.junit.runner.Runner

5、测试套件

  随着项目功能的逐渐完善我们的测试类也会越来越多,测试的时候不能一个一个的去执行,于是有了测试套件,也就是在一个入口类中包含若干个测试类,然后只要执行该入口类就可以执行其包含的若干个测试类

入口类必须是个空类,如下:

import org.junit.runner.RunWith;

import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({DemoTest.class,DemoTest1.class})
public class SuiteTest {

}

6、JUnit参数化设置

  在测试中很多测试代码基本上差不多,所以可以采用参数化设置

import static org.junit.Assert.assertEquals;

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 {
// 第二步:声明变量来存放预期值与输入值
int expected = 0;
int input1 = 0;
int input2 = 0; // 第三步:声明一个返回值为Collection的公共静态方法,使用@Parameters修饰
@Parameters
public static Collection<Object[]>t(){ return Arrays.asList(new Object[][]{
{3,1,2},
{1,2,1},
{2,2,1}
});
} // 第四步:为测试类声明一个带参数的公共构造函数,并在其中为声明变量赋值
public ParameterTest(int expected , int input1 , int input2){ this.expected = expected;
this.input1 = input1;
this.input2 = input2;
} // 第五步:进行测试
@Test
public void testMethod1(){ assertEquals(expected , new Demo().method1(input1 , input2));
}
}

JUnit4使用的更多相关文章

  1. junit4进行单元测试

    一.前言 提供服务的时候,为了保证服务的正确性,有时候需要编写测试类验证其正确性和可用性.以前的做法都是自己简单写一个控制层,然后在控制层里调用服务并测试,这样做虽然能够达到测试的目的,但是太不专业了 ...

  2. [转]在Eclipse中使用JUnit4进行单元测试(中级篇)

    我们继续对初级篇中的例子进行分析.初级篇中我们使用Eclipse自动生成了一个测试框架,在这篇文章中,我们来仔细分析一下这个测试框架中的每一个细节,知其然更要知其所以然,才能更加熟练地应用JUnit4 ...

  3. [转]在Eclipse中使用JUnit4进行单元测试(初级篇)

    首先,我们来一个傻瓜式速成教程,不要问为什么,Follow Me,先来体验一下单元测试的快感! 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除 ...

  4. junit4 assert类中的assert方法总结

    junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类. 1.assertTrue/False([String message,]boolean cond ...

  5. java ssh 框架下 利用junit4 spring-test进行单元测试

    ssh框架下  由于bean实列 都交给spring 管理,要做单元测试就比较苦难,junit4 引入注解方便很多: 1. 加入依赖包 使用Spring的测试框架需要加入以下依赖包: JUnit 4 ...

  6. JUnit4 中@AfterClass @BeforeClass @after @before的区别对比

    JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeCla ...

  7. JUnit4:Test注解的两个属性:expected和timeout

    JUnit4:Test文档中的解释: The Test annotation supports two optional parameters. The first, expected, declar ...

  8. 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台

    开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...

  9. 初学软件测试之——如何使用Junit4

    前几天刚刚接触软件测试,这篇文章主要是介绍使用eclipse的插件——Junit4进行单元测试.下面先介绍一下单元测试的定义:单元测试(unit testing),是指对软件中的最小可测试单元进行检查 ...

  10. JUnit4参数的使用

    用JUnit4进行参数化测试 参数化测试是一个JUnit 3不具备的功能. 基本使用方法 @RunWith 当类被@RunWith注解修饰,或者类继承了一个被该注解修饰的类,JUnit将会使用这个注解 ...

随机推荐

  1. LinqToEntity模糊查询的方法选择

    LinqToEntity针对oracle模糊查询 方法:Contains() 转换出来的sql是  like  关键字 方法:IndexOf()  转换出来的sql是  instr()  函数 lik ...

  2. Python成长笔记 - 基础篇 (七)python面向对象

      三大特性: 1.封装:在类中对数据赋值.内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法 2.继承:一个类可以派生出子类,在父类中定义的属性.方法会自动被子类继承 ...

  3. CPU与内存的关系

    至今才对cpu和内存有一定了解了,下面有几个比喻的理解,很形象呦~ 1# 例如你要吃东西时,硬盘是锅,内存是碗,CPU是你,浅显点就是这样子了~ 2# 例如电脑是企业,内存是车间,cpu是生产线,硬盘 ...

  4. IDEA 创建Maven Web项目(图文版)

    前言:IDEA作为一款广泛使用的开发工具,无论是后台人员,还是前段工作者,都能在它上面发现它的魅力. IDEA提供了诸多项目模板,今天就以创建Maven Web项目作为示例,和大家一起分享: 第一步: ...

  5. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  6. 【整理】--C++变量概述

    1.变量概述及特殊变量初始化 a.引用 b.常量 c.静态 d.静态常量(整型) e.静态常量(非整型) 初始化:常量和引用,必须通过参数列表进行初始化. 静态成员变量的初始化也颇有点特别,是在类外初 ...

  7. Quartz.net2.2初体验

    简介:Quartz.net是一个开源的作用调度框架,非常强大,能够通过简单的配置帮助我们定时具体的操作.相对于我们用的线程里面while(true)然后sleep来执行某个操作,应该算的上是高端,大气 ...

  8. 使用Nginx实现负载均衡

    使用Nginx实现负载均衡 一.nginx简介 nginx是一个高性能的HTTP服务器和反向代理服务器.它起初是俄罗斯人Igor Sysoev开发的,至今支撑者俄罗斯的很多大型的网站. 二.nginx ...

  9. Linux 2.6 源码学习-内存管理-buddy算法

    核心数据结构 linux 2.6 的内存管理支持NUMA(Non Uniform Memory Access Achitecture),即非一致内存访问体系,在该体系中存在多个CPU,并且拥有分离的存 ...

  10. Silverlight中异步调用WCF服务,传入回调函数

    以前学的ASP.NET,调用的都是同步方法,同步方法的好处就是,一步一步走,完成这步才会走下一步.然而,WCF使用的都是异步方法,调用之后不管有没有获得结果就直接往下走,最可恶的是异步函数都是Void ...