1.下载JUnit4的jar包,在项目上右键选properties->Java Build Path ->Libraries->Add library添加刚才的jar包

2.在项目中找一个要测试的类(或者在其他包中建立,再选要测试的类),右键New-> JUnit Test Case

3.如果是在要测试的类上new则Class under test直接会选中当前类,否则要自己手动选择要测试的类.

4.点击下一步则勾选要测试的方法,下一步则生成测试类.

5.点击生成的测试类,run as -> JUnit Test则可以进行测试.

下面讲解一下测试类中的一些注释的作用.

@Test标注

假设要测试的类是ClassA.java,生成的测试文件是ClassATest.java

我们要测试ClassA中的funcA方法,则我们在ClassATest.java中要先创建一个ClassA的对象

private static ClassA classa= new ClassA ();

在测试类ClassATest.java中的测试方法TestfuncA之前,我们要先添加@Test ,表示这个是测试函数,并且TestfuncA必须无返回值.

public void TestfuncA(){
  assertEquals(2,classa.funcA()); //如果classa.funcA()的结果是2则正确,否则错误.
}

@Test的作用就是声明这个是测试方法.

@Ignore标注

假设测试类ClassATest.java中的测试方法TestfuncB的测试方法还没写好,不想测试的时候运行他,则可以用该标注来跳过.

@Before

我们想对ClassA做单元测试,但是可能里面的funcA运行之后,会影响funcB的值(如改变了全局变量).这个时候就要在测试类ClassATest.java中定义

一个还原初始值的方法,并在前面添加标注@Before,表示在每个单元测试之前都执行该方法.

@After

作用和@Before是一样的,只是运行的时机不同.

@BeforeClass 和 @AfterClass

原理和@Before和@After是一样的,只是运行的时机是 测试用例初始化时 和 当所有测试执行完毕之后.

@Test(timeout = 10000)

设置该方法的超时事件,防止测试的方法出现死循环然后一直卡住.

@Test(expected = ArithmeticException.class)

如果测试结果抛出了ArithmeticException异常则是正确的,否则是错误的.

@RunWith(XXXX.class)

指定测试代码提交给JUnit框架后用哪个运行器来执行,默认是TestClassRunner.class,但是要注意这个标注是用来修饰类的,不是用来修饰方法的.如果指定了,

整个类下面所有的方法都是用这个运行器.

@Suite.SuiteClasses

当我们写了很多很多个测试类,不想每个测试类单独运行,而是打包一次测试,则可以用这个标注.

@Suite.SuiteClasses({ClassATest.class,ClassBTest.class}),但是要注意,此时的运行器必须指定@RunWith(Suite.class)

@Parameters

当被测试的ClassA里面的funcA可以有多种输入,并且每种输入会有不要同的输出结果.我们想一次输入不同的参数,然后测试不同的结果.而不是为每种参数情况

写一个测试方法.这个时候就可以用Parameters的标注.

但是我们必须要为测试类ClassATest.java写一个构造方法

public Test(int expected,int input1,int input2)//构造方法,为各个参数赋值,Test中对这3个变量的定义在此省略。
{
this.expected=expected;//希望的结果
this.input1=input1;//输入1
this.input2=input2;//输入2
}

并且用标注Parameters

@Parameters
public static Collection prepareData()
{
Object[][] object ={{3,1,2},{-4,-1,-3},{5,0,5}};//对应构造方法中的3个参数
return Arrays.asList(object);//数组转化成集合形式。 }

此时,在测试函数中就可以用了

 @Test
public void TestfuncA()
{
assertEquals(this.expected,classa.funcA(this.input1, this.input2));//注意是调用的成员变量。 }

JUnit4简易教程的更多相关文章

  1. 生活科技两相宜:(一)Win7使用微软SkyDrive网盘简易教程

    今天得写一个Win7使用微软SkyDrive网盘的简易教程,主要是给我老婆看,顺便贴出来给大家共享一下:)    使用微软SkyDrive网盘有两个层次.一个是使用网页版,这个跟使用163或者QQ网盘 ...

  2. JavaScript简易教程(转)

    原文:http://www.cnblogs.com/yanhaijing/p/3685304.html 这是我所知道的最完整最简洁的JavaScript基础教程. 这篇文章带你尽快走进JavaScri ...

  3. Emacs简易教程

    Emacs简易教程阅读: 命令: $emacs 进入之后,输入: C-h t 这里,C-h表示按住[Ctrl]键的同时按h ####### 20090620 *退出: 输入“C-x C-c” *撤销: ...

  4. 文件上传利器SWFUpload入门简易教程

    凡做过网站开发的都应该知道表单file的确鸡肋. Ajax解决了不刷新页面提交表单,但是却没有解决文件上传不刷新页面,当然也有其它技术让不刷新页面而提交文件,该技术主要是利用隐藏的iFrame, 较A ...

  5. 【转】Delphi内嵌ASM简易教程

    Delphi内嵌ASM简易教程 作者:heiying2006-03-19 18:33分类:默认分类标签: 前言 Delphi作为一个快速高效的开发平台,使用的人越来越多,但熟悉在Delphi代码中嵌入 ...

  6. Ant 简易教程

    转载:http://www.cnblogs.com/jingmoxukong/p/4433945.html Ant 简易教程 Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动 ...

  7. Intellj IDEA 简易教程

    Intellj IDEA 简易教程 目录 JDK 安装测试 IDEA 安装测试 调试 单元测试 重构 Git Android 其他 参考资料 Java开发IDE(Integrated Developm ...

  8. MetaProducts Offline Explorer使用简易教程

    MetaProducts Offline Explorer使用简易教程 by windtrace  20170419 最近想下载一个网站上的内容打包成chm文件,以便离线浏览,webzip太长时间不更 ...

  9. Zabbix实战-简易教程系列

    一.基础篇(安装和接入) Zabbix实战-简易教程--总流程  Zabbix实战-简易教程--整体架构图 Zabbix实战-简易教程--DB安装和表分区 Zabbix实战-简易教程--Server端 ...

随机推荐

  1. selenium+python 移动鼠标方法

    from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver=we ...

  2. 卸载 visual studio 2012时先把系统还原打开

    否则,会停留在创建还原点那儿很长时间 .

  3. redis 操作大全 PHP-redis中文文档

    转自  : http://www.cnblogs.com/weafer/archive/2011/09/21/2184059.html phpredis是php的一个扩展,效率是相当高有链表排序功能, ...

  4. DllMain 用法

    1.1  DllMain简介 跟exe有个main或者WinMain入口函数一样,DLL也有一个入口函数,就是DllMain.以“DllMain”为关键字,来看看MSDN帮助文档怎么介绍这个函数的.  ...

  5. 转转转![Spring MVC] - 500/404错误处理-SimpleMappingExceptionResolver

    参考博客: http://www.cnblogs.com/dongying/p/6129937.html http://www.cnblogs.com/rollenholt/archive/2012/ ...

  6. fadora24安装settools,pip包出错解决方法

    1.fadora24安装Python2.7 [root@dev ~]# python bash: python: 未找到命令... 安装软件包“python”以提供命令“python”? [N/y] ...

  7. linux中grep工具

    正则表达式 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义.其实grep还可以找出符合某个模式(Pattern)的一类字符串.例如找出所有符合xxxxx@xxxx. ...

  8. Shell脚本的特性

    bash shell特性 1.命令补全和文件路径补全, 如果写错无法补全 table 2.命令历史记忆功能history 3.别名功能alias.unalias 4.常用快捷键ctrl+u,k,a,e ...

  9. win8 机器硬盘异响

    win8系统安装在ssd上,挂了一块希捷2T的机器硬盘做数据存储用,经常发生异响.类似通电断电的声音.因为硬盘的APM节能使磁头归位造成的声音. 使用CrystalDiskInfo软件禁用APM,异响 ...

  10. 7 MySQL--记录的增删改查

    MySQL数据操作: DML ======================================================== 在MySQL管理软件中,可以通过SQL语句中的DML语言 ...