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. wiremock 模拟服务接口提供前端使用

    前后端分离同步开发时,如果前端需要等后端把接口都开发完了再去动工的话,项目周期会拉长. 以前开发时,一般前期是先把接口文档写的差不多了,要么是让前端自己构造模拟数据,要么是后端在开个控制器专门提供模拟 ...

  2. ACM刷题踩坑记录

    2017-12-26: 1.再次被写法坑了好长一会,调了半天的bug,还是没找出来.最后,发现,又坑在这个小细节上了.这样子写,第一个if和第三个else在一次循环中都会执行,然后,就GG了. 要注意 ...

  3. 生成Excel

    生成Excel 需要引用MyXls.SL2.dll的类库: 下载地址:http://sourceforge.net/projects/myxls/ 命名空间using org.in2bits.MyXl ...

  4. vs2010 出现“未能将 ProteusDebugEngine 调试器附加到计算机”

    vs2010 打开项目时出现如下图错误,解决方法: 1.查看C:\Progream Files下的Internet Explorer文件夹还在不在,不在则会出现此问题: 2.可以右键项目属性-调试-勾 ...

  5. 建设银行网上银行MD5withRSA php版

    1. 首先通过java程序将建设银行的公钥串转成pem格式并写入文件 SignTest.java是运行程序, RSASig.java是建设银行签名算法类, bcprov-jdk15-145.jar是P ...

  6. forbidden Derby database starting with weblogic instance

    Now doing a new project  which  choose the newest weblogic 12.1.2.0.0 as web container.But found the ...

  7. tomcat加固

    tomcat安全加固和规范 tomcat是一个开源Web服务器,基于Tomcat的Web运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受Web站长的青睐.不过,在默认配置下其存在一定的安全隐患, ...

  8. dubbo 提供者 ip不对

    1.服务器多网卡绑定,导致服务起来后程序自己选择的ip不对. 2.提供服务的机器开启了vpn. 3.dubbo配置文件中写死了host. 以下为转载:转自http://www.ithao123.cn/ ...

  9. 015年传智播客JavaEE 第168期就业班视频教程15-模块规范化

    注册功能最起码得有个用户名和密码吧. bigint相当于Java里面的Long.Long型最大的那个数字是19位,我们这里是20位,绝对够用. userName长度预留20%,让它后期可扩展.6-12 ...

  10. Shiro01 功能点框图、架构图、身份认证逻辑、身份认证代码实现

    基本功能点 功能点框图 功能点说明 1.Authentication:身份认证/登录,验证用户是不是拥有相应的身份: 2.Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个 ...