JUnit快速入门
一、一个简单的Junit测试流程:
1、在项目中导入junit-4.7.jar包,
方法:右击项目,选择Build Path->Configure Build Path->Libraries->Add External JARS,选择junit-4.7.jar包的位置,导入。
注:如果想看junit的源代码,导入时一并将junit-4.7-src.jar这个源文件包一起导入即可。
2、写一个类,如在类中加入两个最简单的加减法的方法。
如:
public class JunitDemo {
public int add(int x,int y){
int z = x+y;
return z;
}
public int subtraction(int x,int y){
int z = x-y;
return z;
}
}
新建一个Junit测试类,方法:新建一个文件,类型为Junit Test Case,命名时最好是被测的类名+test,如JunitDemoTest
3、创建好junit测试类后,对每个需要测试的方法测试,如:
public class JunitDemoTest {
@Test
public void testAdd() {
int z = new JunitDemo().add(2, 3);
assertEquals(5, z);
}
@Test
public void testSubtraction(){
JunitDemo jd = new JunitDemo();
int z = jd.subtraction(5, 2);
assertEquals(3, z);
}
}
4、右击junit测试类,选择以junit的方式来运行,之后即可看见测试结果。
二、Junit中的Annotation
@Test public void method() 定义一个要测试的方法
@Before public void method() 在每一个测试之间都会被执行的方法,这个方法常用来进行一些测试环境的准备。
如:读入输入数据、初始化类等
@After public void method() 与@Before进行对应,做一个清理工作
@BeforeClass public static void method() 在所有的测试开始之前执行,这个方法在类运行的时候运行,而且只运行一次。
所有常用来做一些所有方法都要依赖到的工作,如:数据库的链接
@AfterClass public static void method() 与@BeforeClass进行对应,做一些类级别的清理工作
@Ignore 表示方法是被忽略的,这个方法非常实用,比如方法已经修改,但是对应的测试
方法还没有得到一致的修改的时候,可以用这个关键词忽略这个方法
@Test(expected==IIIegalArgumentException) 检查测试方法是不是抛出了相对应的异常
@Test(timeout=100) 如果方法的执行操作所消耗的毫秒数>100MS,那么方法失败
三、Junit单元测试用例的执行顺序:
@BeforeClass->@Before->@Test->@After->@AfterClass
注:每一个测试方法的调用顺序为:
@Before->@Test->@After
四、最重要的断言Assert,断言这里的方法太多,举几个例子好了,其他的自行查看API
assertEquals("message",A,B):检查A和B是否有相同的内容
assertSame("message",A,B):检查A和B是否是同一个对象
assertTrue("message",A):检查A条件是否为真
JUnit快速入门的更多相关文章
- 【Java】Junit快速入门
Junit介绍 JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个. JUnit ...
- SpringMvc_快速入门,深入分析
目录 一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 ...
- Spring MVC 教程,快速入门,深入分析
http://elf8848.iteye.com/blog/875830/ Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门 资源下载: ...
- Spring_MVC_教程_快速入门_深入分析
Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf Spring ...
- Redis 快速入门
Redis 快速入门 谈到Redis,大家应该都不陌生.它是用c语言开发的一个高性能键值数据库,主要用于缓存领域.本章通过Redis的安装,Redis的五大数据类型,Redis的Java客户端,Red ...
- Mybatis3 快速入门
Mybatis3 快速入门 目前常见的持久层java框架有Hibernate,Mybatis,SpringData.笔者比较喜欢用SpringData.Hibernate 和 Mybatis 也经常用 ...
- Maven3 快速入门
Maven3 快速入门 Maven 是目前大型项目构建的必备知识.本章会通过介绍 Maven 的作用,Maven 的基本语法,以及搭建企业级项目架构来快速入门 Maven .前两部分是理论知识只需要了 ...
- SpringData 基于SpringBoot快速入门
SpringData 基于SpringBoot快速入门 本章通过学习SpringData 和SpringBoot 相关知识将面向服务架构(SOA)的单点登录系统(SSO)需要的代码实现.这样可以从实战 ...
- Gradle 1.12 翻译——第九章 Groovy快速入门
由于时间关系,没办法同时做笔记和翻译,关于Gradle的用户指南,本博客不再做相关笔记,而只对未翻译章节进行翻译并在此发表. 有关其他已翻译的章节请关注Github上的项目:https://githu ...
随机推荐
- 解剖JavaScript中的null和undefined【转】
在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位 ...
- 【扫盲贴】为什么屏幕分辨率是 640x480
本文原地址:http://www.easyx.cn/skills/View.aspx?id=172 常见的屏幕分辨率很奇怪,为什么总用一些不零不整的数字?比如以前最常见的分辨率是 640x480,当初 ...
- 《FilthyRichClients》读书笔记(一)-SwingのEDT
<FilthyRichClients>读完了前几个章节,现将我的体会结合工作以来从事Swing桌面开发的经验,对本书的一些重要概念进行一次 分析,对书中的一些遗漏与模糊的地方及时补充,同时 ...
- Java之enum
枚举是 JDK 1.5 中引入的新特性,存放在 java.lang 包中.在没有枚举之前都是直接定义一个final string这种,有了枚举之后可以直接定义啦,不过在java中需要自定义转换,自己 ...
- 菜鸟的Xamarin.Forms前行之路——共享组件
出自:博客园-半路独行 本文出自于http://www.cnblogs.com/banluduxing 转载请注明出处. Url Description Xamarin.Social The Xama ...
- 比特币解锁脚本中的ScriptSignature都包含了什么东西
比特币 解锁脚本signature script 包含了那些东西? 使用 UTXO 需要私钥签名,私钥到底都签了什么东西呢?一直比较好奇. 比特币的私钥签名总共有五中类型,具体见 btcd 代码,如下 ...
- PTA 7-2 深入虎穴 (30 分)
著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或者是一个房间,或者又有很多条路,同样是每条 ...
- BZOJ4032: [HEOI2015]最短不公共子串(后缀自动机+序列自动机)
题目描述 在虐各种最长公共子串.子序列的题虐的不耐烦了之后,你决定反其道而行之. 一个串的“子串”指的是它的连续的一段,例如bcd是abcdef的子串,但bde不是. 一个串的“子序列”指的是它的可以 ...
- PHP中预定义超全局数组(变量)
PHP中许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用.超全局变量除了具有全局变量特点外,在函数或方法中无需执行global $variable:就可以访问它们. 提供超全 ...
- [AIR] 使用操作系统默认应用程序打开文件
AIR 2.0及以上提供了非常简单易用的API让你使用操作系统所定义的关联应用程序打开文件. 这使得使用AIR开发基于“文件管理器”的应用称为可能 用法如下: var file:File = File ...